# 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/U1,KTD2 白名单)──────────────────────────── # 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 → Recovery(ReflexionEngine 重试)→ Emergency(规则分类器)。 # 仅在 chat REST 路径接入(KTD5);CLI / 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-in(KTD6)— 未设 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