120 lines
6.1 KiB
Plaintext
120 lines
6.1 KiB
Plaintext
# 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
|