FORCE_MODE_IMPLEMENTATION.md 2.1 KB

Force 模式实现方案

功能需求

在 force 模式下,Agent 应强制使用配置列表中的 MCP 工具,而不是自主选择是否使用工具。

实现方案

1. 修改 Agent 执行逻辑

ToolCallAgent 中添加强制工具调用的逻辑:

  1. 检测 MCP 模式:在执行前检查当前的 MCP 模式
  2. 强制执行逻辑:当模式为 force 且存在 MCP 工具时,跳过 Agent 的自主选择,直接调用工具
  3. 工具选择策略
    • 可以按顺序调用所有配置的 MCP 工具
    • 或根据任务描述选择最合适的工具
    • 或优先调用特定工具

2. 利用现有配置

基于现有的 mcp.policy.mode: force 设置来触发强制行为,不需要新增配置字段。

3. 保持兼容性

确保其他模式(auto、disabled、intelligence)的行为不受影响。

4. 技术实现要点

修改 ToolCallAgent

  • execute 方法中添加强制模式的检测和处理逻辑
  • 当检测到 force 模式时,直接执行工具调用流程
  • 处理工具调用的结果并返回

修改 ForceMcpStrategy

  • 保持现有的 includeLocalTools() 返回 false 的逻辑
  • 可以添加一个方法来获取配置的 MCP 工具列表,供 Agent 使用

集成到 AgentFactory

  • 在创建 Agent 时,传递 MCP 模式信息
  • 确保 Agent 能够获取到当前的 MCP 策略

5. 实现步骤

  1. 步骤 1:修改 ToolCallAgent 类,添加强制模式的执行逻辑
  2. 步骤 2:修改 ForceMcpStrategy 类,添加获取工具列表的方法
  3. 步骤 3:修改 AgentFactory 类,传递 MCP 模式信息给 Agent
  4. 步骤 4:测试 force 模式的功能
  5. 步骤 5:确保其他模式的功能不受影响

6. 预期行为

当配置为 force 模式时:

  • Agent 不会使用本地工具
  • Agent 会强制使用配置列表中的 MCP 工具
  • Agent 会根据任务需求选择合适的 MCP 工具进行调用
  • 执行结果会返回给用户

7. 注意事项

  • 确保工具调用的错误处理
  • 考虑工具调用的超时设置
  • 保持与现有代码的兼容性
  • 提供清晰的日志信息