拆解 Agent 内置工具链:Denova filesystem、shell 与 task 工具设计指南

发布时间:2026/10/23 1:53:34

拆解 Agent 内置工具链:Denova filesystem、shell 与 task 工具设计指南 【免费下载链接】denovaAn AI creative platform for novel writing and AI generated RPG, with built-in support for AI agents, Skills, subagent workflows, automations, image generation, and version control.项目地址https://gitcode.com/gh_mirrors/den/denova点击查看免费下载Denova 是一个面向小说写作与 AI 角色扮演游戏的 AI 创作平台它的 Agent 能直接读取项目文件、执行 shell 命令、委派子任务。这篇文章带你完整拆解 Denova 内置工具链中 filesystem、shell 与 task 三大工具组的设计与实现每个工具的输入边界、结果如何压缩回模型上下文、以及权限与恢复机制如何兜底帮助你理解一个生产级 Agent 工具链是怎么搭出来的。一、先看全景内置工具从哪里来所有模型可见的工具都集中在 agent/tool/builtin/ 包中。包注释doc.go用文件命名把职责划分得很清楚文件前缀职责*_tool.go/*_tools.go模型可见的工具定义workspace_*本地工作区适配与搜索行为shell_*命令执行与跨平台进程处理task_*任务委派与本地执行器toolset_*组合并初始化工具集 工具不是零散注册的而是通过 toolset_builders.go 中的Workspace、Shell、Tasks等构建函数按“能力组”打包。例如Workspace会根据访问模式装配read、glob、grep读写模式下再追加write、editShell则按平台自动选择 bash 或 pwsh。每个工具都携带一个由配置摘要计算的稳定Identity用于缓存与能力校验——这是整个工具链可测试、可换实现的基础。二、filesystem 工具read、glob、grep、write、edit 五件套read一个工具多种适配器read的设计很巧妙模型只看到一个工具背后是一组ReadAdapterread_tool.go。本地文本文件、目录结构、甚至图片都通过各自的适配器路由每个适配器自带精确的参数 schema 并在选中后二次校验。结果统一为带行号、分页游标offset/limit/total的有界内容避免大文件撑爆上下文。glob 与 grep发现文件、搜索内容两者定义在 filesystem_search_tools.goglob回答“哪些路径匹配这个模式”一次可传多个文件/目录/glob 模式结果去重并有数量上限支持cursor翻页grep直接使用 ripgrep 语法如rg -n TODO|FIXME agent internal但从不经过 shell——只解析 Denova 支持的rg字面语法杜绝了命令注入风险。两者共享SearchResult结构条目列表 截断标记 下一页游标 警告把本地进程细节挡在模型可见接口之外。write 与 edit可审阅的原子修改写操作通过MutationAdapter注入workspace_mutation_tools.go产品层负责审阅历史、并发控制与结构化回执write整体替换一个文件内容上限 16 MiBedit基于同一份原始快照做多条精确替换old_string/new_string任一匹配失败则整个文件不动保证原子性也支持operationdelete删文件。这就是为什么 Denova 的 Agent 改稿后你能在工作台里逐文件“撤销整组 / 审阅”——变更都是可回放、可审计的结构化操作。三、shell 工具bash 与 pwsh 的受控执行shell 工具定义在 shell_tools.go核心是一个CommandRunner接口本地实现见 shell_local_runner.go。值得学习的设计点结构化状态而非裸错误结果分为success/failed/cancelled/timed_out四类。命令退出码非零是“预期的结构化结果”模型能据此自我修正而不是一次不透明的报错明确的恢复建议失败会附带recovery提示比如超时时建议“缩小命令或显式调大timeout_seconds”输出必有界结果先序列化一个 JSON 信封状态、退出码、工作目录、截断标记剩余预算才给 stdout/stderr超长输出会截断并落为 artifact完整产物文件模型只拿到可读路径和大小安全上限命令正文最大 1 MiB、环境变量 128 项 / 64 KiB可选 PTY 与超时PowerShell 引擎会显式报告是 pwsh 还是 Windows PowerShell 兜底。四、task 工具send、await 与 list_agentstask 工具组定义在 agent_send.go一次send最多携带 32 条操作每条独立成败action作用delegate创建隔离的子 Session Run立即返回message给已有子会话补充上下文不打唤醒followup排队的后续任务steer向正在运行的 Run 注入高优先级指令interrupt/resume在安全边界暂停 / 继续同一 Runabort仅终止指定 Run几个关键约束体现得淋漓尽致回执 ≠ 完成delegate返回 receipt 只表示命令被持久化受理结果通过完成邮箱mailbox自动送达父 Agent 应“继续做独立工作”而不是忙等await 只用于真实依赖task_wait_tool.go 的await等待 1~32 个目标timeout_ms0表示只读一次有界状态就绪指“完成、暂停或交互边界”而非成功冷重启可恢复本地执行器 task_local_executor.go 不维护权威任务表TaskRefagent/session/run足以在进程重启后重新打开子会话并挂回 Run。五、三条贯穿始终的设计哲学边界先行命令 1 MiB、文件 16 MiB、工具结果统一MaxResultBytes有界投影——模型上下文永远不会被单次输出打爆接口即契约ReadAdapter、CommandRunner、MutationAdapter、TaskExecutor都是宿主可替换的接缝工具层只管模型可见语义宿主注入本地或远程实现失败可恢复结构化状态 recovery建议 幂等键idempotency_key让模型和用户都有明确的下一步。想动手体验可以直接阅读 agent/README.md 中“完整组合”示例tools.Workspacetools.Shelltools.Tasks三行代码即可装配出本文拆解的完整工具链。理解这些内置工具的设计也帮你为自己的 Agent 产品设计出同样稳健的工具边界。赞分享【免费下载链接】denovaAn AI creative platform for novel writing and AI generated RPG, with built-in support for AI agents, Skills, subagent workflows, automations, image generation, and version control.项目地址https://gitcode.com/gh_mirrors/den/denova点击查看免费下载相关推荐openJiuwen agent-core DeepAgent 内置工具体系文件系统、Shell、多模态与渐进式工具发现openJiuwen agent core DeepAgent 内置工具体系文件系统、Shell、多模态与渐进式工具发现 本文基于 openJiuwen ag人工智能大模型AI Agent工具调用工作流编排提示工程openJiuwen agent-core 团队生成工具按角色拆分spawn_member 拆分为四个 role 专属工具的架构设计与实现openJiuwen agent core 团队生成工具按角色拆分spawn_member 拆分为四个 role 专属工具的架构设计与实现 导读 本文基于 o人工智能大模型AI Agent工具调用工作流编排提示工程VoltAgent 工具系统实战指南:用 createTool 为 Agent 添加自定义工具、动态工具与 Provider 内置工具VoltAgent 工具系统实战指南:用 createTool 为 Agent 添加自定义工具、动态工具与 Provider 内置工具 本文基于官方配方文档 TAI Agent人工智能大模型RAGAgent 记忆Agent 工作流AI 评测可观测性MCP 服务语音上一篇mbake未来路线图即将推出的7大令人期待的新功能下一篇Docker SDK for Python终极安全指南保护容器环境的10个关键步骤创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/23 1:48:33

05:年龄与疾病

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 1:48:33

Agilent/HP 8720D 网络分析仪

仪器型号: 8720D 仪器品牌: Agilent/HP 技术指标: 50MHz~20GHz 频率范围:50MHz到20GHz 有快速扫描的内置合成信号源 集成化的转换S参数测试装置 矢量接收机、误差修正、时域功能 从外部磁盘驱动器直接储存/调用 达103dB动态范围 H…

2026/10/23 1:48:33

02:陶陶摘苹果

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 5:08:58

老显卡UEFI黑屏怎么办?GOPUpd v1.9.6.5注入GOP驱动教程

简介:面向DIY装机与电脑维修人员的AMD/NVIDIA显卡GOP更新工具GOPUpd 1.9.6.5压缩包,用于升级显卡图形输出协议组件;GOP是连接图形硬件与UEFI固件的重要接口,老旧显卡或主板常因GOP版本过旧导致开机黑屏、无法识别新显卡&#xff0…

2026/10/23 5:08:58

全国计算机等级考试一级选择题题库:25套真题考点与刷题技巧

简介:《2022年计算机等级考试一级试题及答案》是为全国计算机等级考试一级考生整理的练习文档,覆盖计算机基础核心知识点,适合考前刷题、查漏补缺。内容以选择题为主,包含多套试题及解析,涉及计算机发展历史、第四代计…

2026/10/23 5:08:58

老显卡UEFI黑屏怎么办?GOP模块更新实战指南

简介:一套面向AMD与NVIDIA显卡用户的UEFI GOP固件升级工具包,可解决老显卡在UEFI模式下启动黑屏、兼容性不足等问题,也能通过更新显卡BIOS提升稳定性和性能。包内共38个文件,压缩包约6.63MB,核心包含多个.efirom格式GO…

2026/10/23 5:08:58

数学建模电工杯:AI学习影响评价题的降维与综合评价拿分技巧

简介:这份资料是一份针对数学建模电工杯赛题的完整论文方案,围绕“人工智能对大学生学习影响的评价”展开,面向参赛学生与指导教师,既提供赛题解题流程,也可作为数据分析与综合评价类建模项目的参考样例。文档基于调查…

2026/10/23 5:08:58

VMware虚拟机安装Ubuntu零基础教程:小白也能安全上手

简介:本资源是一份面向Linux初学者与开发环境搭建需求者的VMware虚拟机安装Ubuntu系统实操指南,解决在Windows主机上零基础部署Ubuntu开发环境的核心问题。文档以图文并茂方式完整覆盖虚拟机选型对比、VMware安装配置、Ubuntu镜像下载选择、虚拟机创建、…

2026/10/23 5:03:58

9、Python基础之IO编程

前言IO就是Input/Output,输入输出。程序和外部数据交换都属于IO操作:读取文件、写入文件、网络传输等。IO操作有一个核心特点:速度远慢于CPU计算。 Python内置了丰富的IO支持,本篇包含:文件读写、StringIO/BytesIO、文…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑