Craft Agent v0.6.0 实战指南:内置浏览器、文档工具与多面板分支工作流
【免费下载链接】craft-agents-oss项目地址: https://gitcode.com/GitHub_Trending/cr/craft-agents-oss
Craft Agent v0.6.0 是一次以“内置能力”为核心的大版本升级:Agent 不再依赖外部浏览器扩展或 Python 文档处理包,而是直接内置了完整的浏览器自动化能力与全套文档处理工具,同时引入会话分支与多面板布局,让多任务并行与结果对比成为日常操作。本文以官方发布说明为主线,结合仓库源码逐项拆解这些能力的真实实现与实战用法,读完你既能掌握browser_tool的命令全集,也能理解文档工具链与特权审批机制的底层设计。
集成浏览器:从“打开网页”到“端到端自动化”
v0.6.0 最核心的变化是:Craft Agent 拥有了完整的内置浏览器——无需安装扩展、无需外部工具,Agent 可以在应用内部直接浏览网页、填写表单、提取数据并截屏。
发布说明概括了四个关键特性:
- 应用内浏览器面板—— 浏览器窗口以面板形式与对话并排打开,你可以实时观察 Agent 的导航过程;
- 特权执行审批—— 敏感浏览器操作需要显式批准,用户始终掌握控制权;
- 智能截图—— 默认使用 JPEG 格式,配合正确的 DPI 缩放,更快、更小;
- 完整 CLI 命令集—— 导航、点击、填写、滚动、截屏、执行 JS、管理下载等一应俱全。
从源码看browser_tool的命令全集
在源码中,浏览器能力被封装为单一的会话级工具browser_tool,其完整命令说明位于 browser-tools.ts。这是一个 CLI 风格的工具:支持字符串模式(可用分号批量执行,如fill @e1 value; fill @e2 value; click @e3)与数组模式(保留原始参数中的分号、制表符与换行,推荐用于evaluate和paste这类含特殊字符的场景)。
从工具描述与BrowserPaneFns接口(browser-tools.ts)可以归纳出完整的命令矩阵:
| 类别 | 命令 | 说明 |
|---|---|---|
| 生命周期 | open/focus/windows/release/close/hide | 打开新窗口、聚焦已有窗口、列出窗口、释放控制、关闭/隐藏窗口 |
| 导航 | navigate <url>/back/forward | 跳转与前进后退 |
| 元素交互 | snapshot/find <关键词>/click @eN/click-at x y/drag x1 y1 x2 y2/fill @eN value/type text/select @eN value/upload @eN <file> | 基于可访问性树的@eN元素引用进行定位与操作 |
| 键盘与剪贴板 | key <key>/set-clipboard/get-clipboard/paste | 发送按键、读写剪贴板、模拟 Ctrl/Cmd+V |
| 截图 | screenshot/screenshot --annotated/screenshot-region ... | 整页截图;--annotated会在交互元素上叠加@eN标签;区域截图支持坐标、--ref @eN或--selector三种定位方式 |
| 页面诊断 | console [n] [level]/network [n] [status]/wait network-idle | 控制台日志、网络请求日志、等待网络空闲 |
| 执行 | evaluate <js> | 在页面上下文中执行 JavaScript |
| 窗口管理 | window-resize 1440 900 | 调整视口尺寸(响应式调试常用) |
| 下载 | downloads list/downloads wait <ms> | 列出或等待下载完成 |
值得注意的是,截图参数(browser-tools.ts)明确支持format: 'png' | 'jpeg'与jpegQuality,而browser-pane-manager.ts中截图实现同样维护了 PNG/JPEG 双格式支持(见 browser-pane-manager.ts),这正是发布说明中“JPEG 默认、更快更小的截图”的技术落点。会话结束后,工具描述会提示 Agent 调用close关闭窗口或release释放覆盖层,把浏览控制权交还给用户。
特权执行审批:控制权在用户手中
“敏感浏览器操作需要显式批准”的实现主体是 privileged-execution-broker.ts。从源码看,该模块承担三项职责:
- 审批绑定:为每次特权请求生成
requestId,对命令做 SHA-256 哈希(commandHash),批准时校验哈希一致,防止请求被篡改; - TTL 过期:默认审批有效期
DEFAULT_APPROVAL_TTL_SECONDS = 120秒(privileged-execution-broker.ts),超时自动拒绝; - 策略与审计:内置白名单策略(当前仅放行
brew install/upgrade --cask与installer -pkg ... -target /类命令,见 privileged-execution-broker.ts),所有请求创建、批准、拒绝、过期、哈希不匹配事件都会追加写入审计日志~/.craft-agent/logs/privileged-actions.jsonl。
也就是说,敏感操作会经历“策略预检 → 用户审批(带过期时间)→ 哈希校验 → 审计落盘”的完整链路,任何一步不通过都不会执行。
端到端自动化场景
内置浏览器真正的价值在于打通“数据”与“行动”之间的最后一环。官方示例是:从 Amplitude 拉取本周指标 → 在内网工具中填写周报表单 → 把摘要发布到 Slack。整个过程无需人工介入,浏览器面板可以实时展示每一步的导航、填写与提交。
文档工具:告别pip install python-docx
v0.6.0 内置了整套文档处理工具,覆盖 PDF、Word、Excel、PowerPoint、图片与日历文件,无需任何 Python 包或外部依赖。
发布说明列出的八个工具在系统提示词中有完整的命令示例,见 system.ts:
| 工具 | 用途 | 示例 |
|---|---|---|
| markitdown | 通用文档转 Markdown(docx/xlsx/pptx/pdf/html/ipynb) | markitdown report.docx |
| pdf-tool | 提取文本、合并、拆分、查看信息 | pdf-tool extract report.pdf |
| xlsx-tool | 读写与导出 Excel | xlsx-tool read data.xlsx |
| docx-tool | 创建与编辑 Word | docx-tool create output.docx --title "Report" |
| pptx-tool | 查看与处理 PowerPoint | pptx-tool info presentation.pptx |
| img-tool | 缩放、转换格式、提取元数据 | img-tool resize photo.jpg --width 800 |
| doc-diff | 并排对比两份文档 | doc-diff old.docx new.docx |
| ical-tool | 读取与解析日历文件 | ical-tool read calendar.ics |
所有工具都支持--help查看完整用法,并支持-o <file>将输出写入文件而非标准输出。系统提示词还给出了两条实用建议(system.ts):
- 把markitdown 当作万能转换器,它覆盖
.docx、.xlsx、.pptx、.pdf、.html、.ipynb等格式; - 当 Read 工具读取二进制文件(如
.docx、.xlsx)失败时,用markitdown <file>转成可读文本再继续。
源码中的文件类型映射
在 claude-agent.ts 中可以看到各扩展名对应的推荐处理工具:.pdf走markitdown or pdf-tool extract,.docx走markitdown,.xlsx走markitdown or xlsx-tool read,.pptx走markitdown or pptx-tool extract,.doc/.xls/.ppt以及邮件格式.msg/.eml/.rtf则统一交给markitdown。这解释了为什么“读取二进制文件”在 v0.6.0 中不再是障碍——文件上传读取链路会对 Office 扩展名走 base64 读取并交由 markitdown 转换(见 files.ts)。
典型工作流
官方给出的组合示例极具代表性:从 Google Drive 下载最新报告 → 用 markitdown/xlsx-tool 提取数据表格 → 为每条行动项创建一条 Linear issue。相比以往先要“装 pandas”、再写脚本解析,如今一句话即可完成整条数据流水线。
分支与多面板:并行探索,不再怕走错路
工作区现在支持会话分支与多面板同时查看:
- 会话分支(Session branching)—— 在对话的任意节点分叉,并行探索不同方案,原对话线程不受影响;
- 多面板视图(Multi-panel view)—— 浏览器、文档、对话并排展示;
- 新会话列表设计—— 会话管理更清晰、更有序。
实际用法:并行对比两种实现策略、写代码时旁边常驻浏览器面板、并排比较两份输出。分支的意义在于——永远不必担心“走错了路”,分支重试即可。这一能力与上一节的浏览器、文档工具形成配合:你可以同时开着浏览器面板观察 Agent 操作、打开文档面板查看处理结果,再回到对话继续调整指令。
模型更新
- Sonnet 4.6—— 所有 Sonnet 4.5 连接自动迁移到 Sonnet 4.6;
- Copilot 模型匹配—— 修复了 GitHub Copilot 连接的模型 ID 解析问题;
- 连接兼容性—— 修复
anthropic_compat连接拒绝裸模型名(bare model names)的问题。
这些修复都属于连接层(llm-connections、模型解析模块)的兼容性收尾,目的是让不同来源的模型连接都能稳定解析并执行会话。
改进
v0.6.0 还包含一批面向安全、稳定性与可发现性的改进:
- 探索模式安全基线—— 默认白名单在原有只读搜索命令基础上,新增常见 typecheck 命令(
bun run typecheck、tsc --noEmit等),降低开发者在探索模式下的摩擦; - 会话工具可靠性—— 统一了 Claude、Pi、session-mcp-server 各后端的工具列表与执行逻辑,防止漂移;
- 权限模式处理—— 改进权限模式切换时的会话状态跟踪;
- 工作区作用域—— source 与 skill 的广播消息现在限定在活动工作区内,避免跨工作区干扰;
- 自动化可发现性—— 空自动化状态页新增 “Learn More” 与 “Add Automation” 入口,并在 Help 菜单补充链接;
- 特性开关健壮性—— 运行时安全求值,避免调试会话中的导入顺序问题;
- 类型检查覆盖——
typecheck:all现在包含session-tools-core包。
其中“统一各后端工具列表与执行逻辑”在仓库中有对应佐证:session-tools-core的 handlers 目录(handlers)承载了配置校验、模板渲染、脚本沙箱、状态/标签管理等会话级工具定义,是各后端工具对齐的公共底座。
Bug 修复
- 超大图片—— 防止超大图片永久性破坏会话;
- 图片缩放—— 强化了图片缩放的错误作用域与元数据剥离;
- 工具输入历史—— 从会话历史展示中剥离
_displayName/_intent元数据; - 窗口拖拽区—— 修复 TopBar 拖拽区域;
- 日志噪音—— 清理调试日志,将
readFile的 ENOENT 降级为 debug 级别; - 重复模型—— 修复连接迁移过程中的重复模型条目;
- Git Bash(Windows)—— 修复自 v0.5.0 起被跳过的 onboarding 检查。
_displayName/_intent正是系统提示词中规定的所有 MCP 工具必填元数据字段(见 system.ts),本次修复确保这些用于 UI 反馈与结果摘要的元数据不再污染会话历史本身。
小结
v0.6.0 通过内置浏览器、内置文档工具、分支与多面板三大支柱,把 Craft Agent 从“能聊、能读”推进到“能看、能操作、能并行”的完整自动化 Agent:浏览器面板解决了 Agent 与现实网页的交互问题,markitdown 等文档工具消灭了环境依赖,分支与多面板则让复杂任务的多路并行成为可能。三者叠加,端到端工作流(拉数据 → 处理文档 → 填写表单 → 汇总发布)真正做到了开箱即用。
如果你想深入源码验证,推荐从这三处入手:命令全集看 browser-tools.ts、审批与审计机制看 privileged-execution-broker.ts、文档工具的系统级命令说明看 system.ts。
【免费下载链接】craft-agents-oss项目地址: https://gitcode.com/GitHub_Trending/cr/craft-agents-oss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考