fischer-agentkit/configs/agentkit.yaml.example

120 lines
6.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AgentKit 配置示例文件
#
# 用法:复制为 agentkit.yaml 并按需修改。
# cp configs/agentkit.yaml.example agentkit.yaml
#
# 配置查找顺序:--config 路径 > ./agentkit.yaml > ~/.agentkit/agentkit.yaml
# 所有 ${VAR:-default} 占位符在加载时从环境变量解析
# (见 server/config._resolve_env_vars。此文件不含任何密钥 —
# 部署时通过环境变量或 Web UI Settings 页注入。
# ── 服务端 ─────────────────────────────────────────────────────────────
server:
host: 0.0.0.0
port: 18001
workers: 1
rate_limit: 60 # 每分钟每客户端请求数上限
# api_key: "${AGENTKIT_API_KEY}" # 可选:外部系统调用 API 的鉴权 key
# ── LLM 网关 ───────────────────────────────────────────────────────────
# 基于 LiteLLM 统一适配层,支持任意 OpenAI 兼容 API。
# API Key 通过环境变量注入,不在此明文存储。
llm:
providers:
bailian-coding:
type: openai
base_url: https://coding.dashscope.aliyuncs.com/v1
api_key: "${DASHSCOPE_API_KEY}"
models:
qwen3.7-plus: {alias: default}
qwen-turbo: {alias: fast}
deepseek:
type: openai
base_url: https://api.deepseek.com/v1
api_key: "${DEEPSEEK_API_KEY}"
models:
deepseek-chat: {alias: chat}
deepseek-reasoner: {alias: reasoning}
model_aliases:
default: bailian-coding/qwen3.7-plus
fast: bailian-coding/qwen-turbo
chat: deepseek/deepseek-chat
reasoning: deepseek/deepseek-reasoner
# 模型 fallback 链:主模型失败时按序尝试 fallback。
fallbacks:
default: [fast] # default 失败 → fast同 provider 内降级)
# ── 危险工具门控IQ-Boost/U1KTD2 白名单)────────────────────────────
# PLAN_EXEC autonomy 模式下,工具名匹配任一 tool_patterns 时触发
# confirmation_request用户确认后才执行非危险工具直接执行。
# 对应 server/config.DangerousToolsConfig由 ServerConfig.from_dict 解析。
dangerous_tools:
# 总开关。false 时 is_dangerous() 恒返回 False无门控
enabled: true
# 危险工具名匹配模式列表。每项是 Python 正则表达式re.compile
# 通过 re.match 匹配工具名(仅锚定起始,未自动锚定结尾)。
# 建议用 ^ 前缀显式锚定起始;用 $ 后缀要求完全匹配。
# ponytail ceiling = 未列入清单的危险操作会被漏检;
# 升级路径 = LLM 辅助分类。
tool_patterns:
- "^rm$" # 文件删除
- "^rmdir$" # 目录删除
- "^deploy$" # 部署触发
- "^kubectl" # K8s 操作kubectl_* 前缀均匹配)
- "^helm" # Helm 发布管理
- "^git_push_force$" # 强制推送(覆盖远端历史)
- "^alembic" # 数据库迁移工具
- "^migrate" # 通用迁移命令
- "^payment_" # 支付类工具payment_charge / payment_refund 等)
# autonomy 模式暂停阈值U3/R10。0 = 禁用该项检查。
# 超时或连续失败达到阈值时发出 autonomy_paused 事件,需用户介入恢复。
autonomy_timeout_minutes: 30
max_consecutive_failures: 3
# ── 会话 / 总线 / 任务存储 ─────────────────────────────────────────────
# 设 REDIS_URL 环境变量后切换为 Redis 后端;未设时回退到进程内内存(开发用)。
session:
backend: ${AGENTKIT_SESSION_BACKEND:-memory}
redis_url: ${REDIS_URL:-redis://127.0.0.1:6391/0}
bus:
backend: ${AGENTKIT_BUS_BACKEND:-memory}
redis_url: ${REDIS_URL:-redis://127.0.0.1:6391/0}
task_store:
backend: ${AGENTKIT_TASK_STORE_BACKEND:-memory}
redis_url: ${REDIS_URL:-redis://127.0.0.1:6391/0}
# ── 技能 / 专家模板 ────────────────────────────────────────────────────
skills: {auto_discover: true, paths: ["./configs/skills"]}
experts: {paths: ["./configs/experts"]}
board: {max_rounds: 5, default_template: private_board, parallel_speech: true}
# ── 日志 / 路由 ────────────────────────────────────────────────────────
logging: {level: INFO, format: text}
router: {classifier: heuristic, auction_enabled: false}
# ── 三级回退链G7/U3────────────────────────────────────────────────
# main → RecoveryReflexionEngine 重试)→ Emergency规则分类器
# 仅在 chat REST 路径接入KTD5CLI / ReWOO / Reflexion 内部 ReAct 调用绕过。
fallback_chain:
enabled: true
recovery:
enabled: true
max_retries: 1 # ReflexionEngine max_reflections 覆盖值
emergency:
enabled: true
# ── 回滚配置G9/U4──────────────────────────────────────────────────
# 驱动 RollbackExecutor 子进程超时PlanPhase.validation_command /
# rollback_command。按阶段 opt-inKTD6— 未设 rollback_command 时不执行回滚。
rollback:
default_timeout: 30.0
# ── OTel 可观测性U1────────────────────────────────────────────────
# OTel 依赖为 required设 enabled=false 可显式关闭。
telemetry:
enabled: true
otlp_endpoint: http://localhost:4317 # OTLP gRPC生产指向集群 collector
service_name: fischer-agentkit
export_traces: true
export_metrics: true