DojoAgents 工具与执行沙箱完整指南让 AI Agent 安全地写代码、算指标、抓数据【免费下载链接】DojoAgentsDojoAgents: Full-Market AI Copilot for Personal Investment项目地址: https://gitcode.com/gh_mirrors/do/DojoAgentsDojoAgents 是一款面向个人投资的全市场 AI 副驾驶AI Copilot。它的核心能力之一是让 AI Agent 在工具系统与执行沙箱的双重保护下安全地写 Python 代码、计算金融指标、抓取行情与新闻数据。这篇指南面向新手带你理解工具沙箱的设计思路以及每个常用工具能做什么、边界在哪里。为什么 Agent 的工具需要一个“执行沙箱”让 AI 直接执行代码和命令新手最担心三个问题失控执行——Agent 跑了一个死循环或耗时任务卡死整个系统越权访问——Agent 读到、改到了不该碰的文件或拿到不该有的网络权限噪音干扰——超长的终端输出、ANSI 颜色码、敏感信息污染模型上下文。DojoAgents 的答案是把工具和沙箱分开设计**Tools工具**是 Agent 执行外部动作的标准接口负责能做什么**Sandbox沙箱**在执行前应用安全策略和超时边界负责做到什么程度为止。两者在 Tools 与 Sandbox 架构文档 中有完整定义。工具系统四件套从注册到执行组件职责源码位置ToolSpec工具的名称、描述、参数 schema、handler、沙箱策略dojoagents/tools/registry.pyToolRegistry工具的注册、查找、列出dojoagents/tools/registry.pyToolExecutor执行工具、捕获异常、规范化结果dojoagents/tools/executor.pySandboxPolicy工具调用的安全与超时策略dojoagents/tools/sandbox.pySandboxPolicy是一个简单的策略对象四个字段划清边界字段默认值含义allowed_roots空允许访问的文件目录白名单allow_networkFalse是否允许网络访问默认关闭allowed_commands空允许执行的命令白名单timeout_seconds120单次工具调用超时秒执行流程在 ToolExecutor.execute_one() 中先做沙箱策略检查再用超时包装器运行工具 handler任何异常都会被捕获并转成结构化的失败结果而不是让进程崩溃。核心工具逐个看execute_code写 Python 算指标这是算指标的主力。Agent 提交的 Python 代码不会直接在主进程里运行而是被包装后放进受控子进程执行白名单预加载默认只预加载pandas别名pd、numpynp、json等安全包见 code_execution_tool.py干净环境子进程只保留 PATH、TZ、语言等最小环境变量HOME指向临时目录避免代码顺手摸到宿主机的配置金融数据入口代码里可以直接import dojo_tools通过 dojoagents/tools/dojo_tools_stub.py 这个桩模块访问行情、财务等金融数据而无需自己发 HTTP 请求。terminal安全地跑 shell 命令terminal工具负责执行 shell 命令见 terminal_tool.py命令在 BaseEnvironment 的统一封装中运行超时默认 120 秒未到就自动终止返回退出码124输出自动清洗ANSI 颜色码被剥离超长输出按头 40% 尾 60%截断到 3 万字符以内防止刷屏敏感信息脱敏输出在返回前经过 dojoagents/agent/redact.py 的redact_sensitive_text()处理长任务可以backgroundtrue放到后台进程注册表里跑完成后再通知 Agent不阻塞对话。web_search 与 web_extract两步抓取数据抓数据走搜索 → 提取两步web_search只返回结果的元数据行标题、摘要、链接轻量快速web_extract对选中的 URL 抓取并规范化整页内容。定义在 dojoagents/tools/web_searcher.py。网络能力是否开启由沙箱策略统一管控默认是关闭的。dojo.sdk.*金融只读主路径金融数据的主路径是dojo.sdk.*一族工具只读覆盖行情、财务、行业板块等由 Runtime 通过get_dojo_sdk_specs()注册。工具结果最终统一规范化为ToolResult可携带data结构化数据、viz_blocks可视化块、artifacts产物引用、resource_changes资源刷新通知等字段前端按resource_changes刷新缓存而不是按工具名猜副作用——契约细节见 工具契约参考。write_session_file把产物写回会话当 Agent 算完指标、生成报告后用write_session_file把 JSON/JSONL 等交付物写回会话目录官方也特意提醒写交付物请用它而不是 terminal。你上传的资料也会经过 dojoagents/tools/session_input_tool.py 被解析成 Agent 可读的输入。五种执行环境从本机到云端同一套接口可插拔地跑在不同执行环境里源码都在 dojoagents/tools/environments/环境适用场景特点Local日常开发直接在宿主机 shell 执行最简单Docker需要隔离自动起容器把当前工作目录挂载到/workspace命令互不干扰SSH远程机器命令发到远程主机执行Modal云端算力重计算任务丢到云端沙箱Base所有环境统一负责命令包装、超时、cwd 跟踪例如 DockerEnvironment 会自动创建dojo-sandbox-*容器并把宿主机目录挂载进去——你在本地看到的结果和容器里跑的是一致的但文件系统彼此隔离。执行完之后你会看到什么成功ToolResult.okTruecontent是清洗后的文本latency_ms记录耗时超时进程被强制终止返回 Command timed out 和退出码124需要人确认部分工具会抛出AgentEscalationError执行器把它转成升级给用户的结果而不是静默失败见 dojoagents/tools/escalation.py。也就是说无论 Agent 做了什么结果都是有界、可解释、可审计的。常见问题速查沙箱默认允许联网吗不允许allow_network默认False需要时在策略中显式开启。超时是多久默认 120 秒可在SandboxPolicy中调整长任务建议用terminal的后台模式。execute_code 能 import 任意包吗只有预加载白名单pandas/numpy/json开箱即用其余受子进程环境限制。怎么给 Agent 加工具参考 添加工具 与 Tools 与 Sandbox 两份开发文档。一句话总结DojoAgents 用ToolSpec 声明能力、ToolRegistry 管理工具、ToolExecutor 统一执行、SandboxPolicy 划定边界让 AI Agent 在个人投资场景里既能写代码、算指标、抓数据又始终跑在安全笼子里。【免费下载链接】DojoAgentsDojoAgents: Full-Market AI Copilot for Personal Investment项目地址: https://gitcode.com/gh_mirrors/do/DojoAgents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考