在 ClaudeX 中,当系统接收到一个任务时,整体工作流程遵循 “感知 - 思考 - 行动” 的循环机制,结合代理(Agent)工具和核心引擎的协作完成任务处理,具体流程和背后机制如下:

一、任务接收与初始化

  1. 输入接收与解析

    • 用户通过 PromptInput 组件输入任务(支持自然语言、命令前缀如 / 或 ! 等),由 processUserInput 函数处理并创建 UserMessage 对象,添加到消息历史中。
    • 示例:若任务涉及代码检索或复杂查询,系统会判断是否需要调用 AgentTool(元工具)。
  2. 上下文收集

    • 核心引擎(query.ts)触发上下文收集,包括项目目录结构、相关文件内容、git 状态等,并读取 CLAUDEX.md 作为补充上下文。
    • 上下文按 “洋葱结构” 分层封装(系统提示层、上下文层、工具描述层、用户消息),确保模型获取完整信息。

二、任务分析与工具选择

  1. AI 模型交互

    • 核心引擎将格式化后的系统提示(含上下文)、消息历史和可用工具列表发送给 AI 模型(如 Claude、OpenAI 兼容模型)。
    • 模型根据任务类型(如模糊搜索、多步骤检索)分析是否需要调用工具,若需使用代理,则生成 dispatch_agent 工具调用指令(对应 TOOL_NAME = 'dispatch_agent')。
  2. 代理工具(AgentTool)的触发逻辑

    • 当任务满足以下条件时,系统会选择 AgentTool
      • 搜索需求模糊(如关键词 “config”“logger”),不确定首次匹配结果是否准确;
      • 需要多步骤检索(如跨文件查找关联代码);
      • 不适合单一工具(如已知路径时直接用 FileReadTool,而无需代理)。

三、代理任务执行流程

  1. 子代理创建与权限控制

    • AgentTool 作为元工具,会创建子代理并严格限制其权限:仅能调用只读工具(如 GlobTool 文件匹配、GrepTool 内容搜索、LS 目录列出等),禁止使用修改类工具(如 BashToolFileWriteTool),确保安全性。
  2. 并发与无状态执行

    • 子代理支持并发执行:系统可在单条消息中启动多个子代理并行处理任务(如同时搜索多个关键词),通过 Promise.all 实现并行工具调用,提升效率。
    • 子代理是无状态的:每次调用独立运行,无法与主系统通信,仅返回一次最终结果,因此任务描述需详细明确(如指定返回格式、目标信息)。
  3. 工具执行与结果处理

    • 子代理自主调用允许的只读工具,执行检索任务后返回结果。
    • 结果对用户不可见,由主系统汇总、提炼后,以简洁文本形式呈现给用户。

四、核心引擎的循环调度(基于 query.ts)

  1. 工具调用解析与执行

    • 核心引擎从 AI 响应中提取工具调用指令(extractToolUses),区分只读工具(并行执行)和修改类工具(串行执行)。
    • 代码示例(简化逻辑):

      typescript

      // 并行执行只读工具(含代理调用的工具)
      const concurrentTools = toolUses.filter(t => isReadOnlyTool(t));
      const concurrentResults = await Promise.all(
        concurrentTools.map(tool => executeTool(tool, canUseTool))
      );
      
  2. 递归循环与任务完成

    • 工具执行结果被添加到消息历史,核心引擎通过递归调用 query 函数继续对话循环,直至任务完成(无更多工具调用)。
    • 若过程中任务被中断(如用户终止),系统会返回中断信息并结束流程。

五、总结:任务处理的核心机制

  • 分层协作:用户输入 → 交互层解析 → 核心引擎调度 → AI 模型决策 → 代理 / 工具执行 → 结果反馈,形成闭环。
  • 安全与效率平衡:通过权限控制(只读工具限制)、并发执行(提升速度)、无状态代理(简化逻辑)确保任务可靠处理。
  • 灵活性:支持单工具直接调用和代理多工具协同,适配从简单到复杂的各类编程任务。

这一机制使 ClaudeX 能够像人类开发者一样分析任务、调用工具、处理结果,高效完成代码检索、分析等复杂工作。x

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐