用途
本技能面向构建自主编程智能体的开发者,提供一套设计模式参考,灵感来自 Cline 与 OpenAI Codex。当需要构建自主 AI 智能体、设计工具/函数调用 API、实现权限与审批系统、为智能体创建浏览器自动化能力,或设计人在回路(human-in-the-loop)工作流时,可使用本技能。
主要能力
1. 核心智能体架构
智能体循环(Agent Loop):采用“思考(推理)→ 决策(规划)→ 执行(动作)→ 观察(结果)”的循环结构。示例代码中 AgentLoop 类接收 LLM、工具列表与最大迭代次数,在循环中调用 LLM 获取响应,若响应包含工具调用则执行工具并将结果加入历史,否则视为任务完成返回内容;达到最大迭代次数则返回提示。
多模型架构(Multi-Model Architecture):MultiModelAgent 示例展示按任务类型选择不同模型——快速模型用于规划、强大模型用于复杂推理、专用模型用于代码生成,并通过 select_model 方法根据任务类型返回对应模型。
2. 工具设计模式
工具 Schema:Tool 基类通过 schema 属性返回 JSON Schema,包含名称、描述、参数(类型、属性、必填项)。示例 ReadFileTool 演示了读取文件工具的参数定义(路径、起始行、结束行)与执行逻辑,包括文件未找到时的错误返回。
必备智能体工具:CODING_AGENT_TOOLS 字典列出编码智能体常用工具,分为文件操作(读、写、编辑、列目录、搜索文件)、代码理解(搜索代码、查找定义、查找引用)、终端(运行命令、读取输出、发送输入)、浏览器(打开 URL、点击元素、输入文本、截图)、上下文(询问用户、网络搜索)。
编辑工具设计:EditFileTool 采用搜索/替换模式实现精确文件编辑,支持 expected_occurrences 参数校验匹配次数,若实际出现次数与预期不符或未找到搜索文本则返回错误,否则执行替换并写入文件。
3. 权限与安全模式
权限级别:PermissionLevel 枚举定义四种级别——AUTO(全自动,无需批准)、ASK_ONCE(每会话询问一次)、ASK_EACH(每次询问)、NEVER(永不允许)。PERMISSION_CONFIG 示例为不同工具分配级别:读取文件、列目录、搜索代码为 AUTO;写文件、编辑文件为 ASK_ONCE;运行命令、删除文件为 ASK_EACH;sudo 命令、格式化磁盘为 NEVER。
审批 UI 模式:ApprovalManager 类根据配置请求审批,处理 AUTO 直接通过、NEVER 显示错误并拒绝、ASK_ONCE 检查会话批准记录,否则弹出审批对话框,并可通过 _assess_risk 对特定调用(如包含 rm -rf、sudo、chmod 的命令)评估为高风险。
沙箱执行:SandboxedExecution 类在隔离环境中执行代码/命令,包含允许的命令列表(npm、python、node、git、ls、cat)、阻止的路径(/etc、/usr、/bin、用户主目录),通过 validate_path 确保路径在工作区内、validate_command 检查命令是否允许,执行时设置工作目录、超时与隔离的 HOME 环境变量。
4. 浏览器自动化
浏览器工具模式:BrowserTool 类基于 Playwright/Puppeteer 实现浏览器自动化,支持打开 URL(返回标题与截图)、点击元素(带超时与网络空闲等待)、输入文本、获取页面可访问文本内容(通过 TreeWalker 提取可见文本)。
视觉智能体模式:VisualAgent 类利用截图让视觉模型理解网页,describe_page 方法让模型描述页面并列出交互元素,find_and_click 方法通过视觉描述定位元素并返回坐标后点击。
5. 上下文管理
资料中仅显示“5.1 Context Injection Pa”开头,后续内容未提供。
使用方式
本技能以设计模式与示例代码形式呈现,开发者可参考其中的类结构与实现思路,将其应用到自己的智能体项目中。资料未提供具体的安装命令或调用步骤。
适用场景
- 构建自主 AI 编程智能体
- 设计工具/函数调用 API
- 实现权限与审批系统
- 为智能体创建浏览器自动化
- 设计人在回路工作流
限制
资料未说明本技能的具体运行环境、依赖版本、收费情况或效果保证。上下文管理部分内容不完整,仅显示开头。