diff --git a/config.yaml b/config.yaml index 219d7f25..c930de5e 100644 --- a/config.yaml +++ b/config.yaml @@ -38,7 +38,7 @@ log: openai: provider: openai # API 提供商: openai(默认,兼容OpenAI协议) | claude(自动桥接到Anthropic Claude Messages API) base_url: https://dashscope.aliyuncs.com/compatible-mode/v1 # API 基础 URL(必填) - api_key: sk-xxxxxx # API 密钥(必填) + api_key: sk-xxxxxxx # API 密钥(必填) model: qwen3-max # 模型名称(必填) max_total_tokens: 120000 # LLM 相关上下文的最大 Token 数限制(内存压缩和攻击链构建会共用此配置) # ============================================ @@ -57,24 +57,45 @@ agent: large_result_threshold: 102400 # 大结果阈值(字节),默认50KB,超过此大小会自动保存到存储 result_storage_dir: tmp # 结果存储目录,大结果会保存在此目录下 tool_timeout_minutes: 30 # 单次工具执行最大时长(分钟),超时自动终止;0 表示不限制(不推荐,易出现长时间挂起) + # system_prompt_path: prompts/single-react.md # 可选:单代理系统提示文件(相对本配置文件所在目录);非空且可读时替换内置提示 # 多代理(CloudWeGo Eino DeepAgent,与上方单 Agent /api/agent-loop 并存) # 依赖在 go.mod 中拉取;若下载失败可设置: go env -w GOPROXY=https://goproxy.cn,direct -# 启用后需重启服务才会注册 /api/multi-agent 与 /api/multi-agent/stream;前端可选「多代理」模式走 stream 接口 +# 启用后需重启服务才会注册 /api/multi-agent 与 /api/multi-agent/stream;Deep / Plan-Execute / Supervisor 由对话页与 WebShell 所选模式在请求体中传入;机器人/批量无请求体时固定按 deep multi_agent: enabled: true default_mode: multi # single | multi(前端默认,仍可用界面切换) robot_use_multi_agent: true # true 时企业微信/钉钉/飞书机器人也走 Eino 多代理(成本更高) batch_use_multi_agent: false # true 时「批量任务」队列中每个子任务也走 Eino 多代理(成本更高) - max_iteration: 0 # Deep 主代理最大轮次,0 表示沿用 agent.max_iterations + max_iteration: 0 # 主代理 / plan_execute 执行器最大轮次,0 表示沿用 agent.max_iterations + # plan_execute 专用:execute↔replan 外层循环上限,0 表示 Eino 默认 10。Executor 未暴露 Handlers:patch/reduction/plantask 不作用于 PE,但 tool_search 工具列表拆分仍通过共享 ToolsConfig 作用于执行器。 + plan_execute_loop_max_iterations: 0 sub_agent_max_iterations: 120 without_general_sub_agent: false # false 时保留 Deep 内置 general-purpose 子代理 without_write_todos: false - orchestrator_instruction: "" # 非空且未使用 agents/orchestrator.md 正文时作为 Deep 主代理系统提示;若存在 orchestrator.md(或某 .md 含 kind: orchestrator),正文非空则优先用文件,否则仍用此处;留空且无文件正文时用 Eino 默认 + orchestrator_instruction: "" # Deep 主代理:agents/orchestrator.md(或 kind: orchestrator 的单个 .md)正文优先;正文为空时用此处;皆空则 Eino 默认 + orchestrator_instruction_plan_execute: "" # plan_execute 主代理:agents/orchestrator-plan-execute.md 正文优先;正文为空时用此处;皆空则用内置 plan_execute 提示(不使用 Deep 的 orchestrator_instruction) + orchestrator_instruction_supervisor: "" # supervisor 主代理:agents/orchestrator-supervisor.md 正文优先;正文为空时用此处;皆空则用内置 supervisor 提示(transfer/exit 说明仍由运行追加;不使用 Deep 的 orchestrator_instruction) # Eino 官方 Skills:渐进式披露 + 可选本机文件/Shell(eino-ext local backend)。Skills 目录见 skills_dir。 eino_skills: - disable: false # true 时不注册 skill 中间件与本地 FS 工具 - # filesystem_tools: true # 默认 true:注册 read_file/glob/grep/write/edit/execute(授权环境慎用) - # skill_tool_name: skill # 覆盖默认工具名 + disable: false # true:不注册 skill 渐进式披露中间件,也不挂本机 FS/Shell 工具;false:按下方开关加载 + filesystem_tools: true # true:注册 read_file/glob/grep/write/edit/execute(授权环境慎用);false:仅 skill,不暴露本机读写与 Shell + skill_tool_name: skill # 模型侧可调用的「加载技能」工具名,一般保持 skill;与技能包文档中的调用名一致即可 + # Eino ADK 中间件与 Deep/Supervisor 调参(结构体见 internal/config/config.go → MultiAgentEinoMiddlewareConfig) + eino_middleware: + patch_tool_calls: true # true:修补历史中无 tool_result 的悬空 tool_call(流式中断/重试后更稳);false:关闭;字段省略时默认等同 true + tool_search_enable: false # true:工具数 ≥ min 时启用 tool_search,仅前 N 个工具常驻,其余按正则按需解锁,省 token、减误选;false:全量工具进上下文 + tool_search_min_tools: 20 # 达到该数量才启用 tool_search(避免工具很少时多此一举);与 always_visible 配合使用 + tool_search_always_visible: 12 # 始终直接暴露给模型的工具个数(顺序与角色工具列表一致);其余工具进入动态池,需 tool_search 解锁 + plantask_enable: false # true:主代理(Deep / Supervisor 主)挂载 TaskCreate/Get/Update/List;需 eino_skills 可用且 skills_dir 存在,否则仅打日志并跳过 + plantask_rel_dir: .eino/plantask # 结构化任务文件相对 skills_dir 的子目录,其下再按会话 ID 分子目录存放 + reduction_enable: false # true:大工具输出截断/落盘以控上下文;依赖与 plantask 相同的 eino local 写盘后端,无后端时不挂载 + reduction_root_dir: "" # 非空:截断/清理内容落盘根路径;空:使用系统临时目录下按会话隔离的默认路径 + reduction_clear_exclude: [] # 不参与「清理阶段」的工具名额外列表(会与 task/transfer/exit 等内置排除项合并);需要时用 YAML 列表填写 + reduction_sub_agents: false # true:子代理也挂 reduction;false:仅编排主代理使用 reduction + checkpoint_dir: "" # 非空:为 adk.NewRunner 启用按会话子目录的文件型 CheckPointStore,便于中断恢复持久化;Resume 的 HTTP/前端流程需另行对接 + deep_output_key: "" # 非空:将最终助手输出写入 adk session 的键名(Deep 与 Supervisor 主代理);空表示不写入 + deep_model_retry_max_retries: 0 # >0:ChatModel 调用失败时的框架级最大重试次数(Deep 与 Supervisor 主);0:不重试 + task_tool_description_prefix: "" # 非空:仅 Deep 的 task 工具使用自定义描述前缀,运行时会拼接子代理名称;空则走 Eino 默认生成逻辑 # 数据库配置 database: path: data/conversations.db # SQLite 数据库文件路径,用于存储对话历史和消息