第15篇:代码执行——AI 写代码跑代码
Hermes 功能详解第15篇:代码执行。让 AI 直接运行 Python 等代码,验证结果再继续。
这篇讲的是 Hermes Agent 的「代码执行」功能——让 AI 自己写 Python 脚本、自己运行,把一堆零散的小任务打包成一次搞定。
它解决什么问题?
平时让 AI 干活,是「你说一句,它做一步」。比如查资料、读文件、改代码,每一步都要来回对话。代码执行让 AI 把多步操作写成一个脚本,一次性跑完,只把最终结果告诉你。
打个比方:以前是让助手一趟趟跑腿拿东西,现在是让助手列好清单、一次性采购完,回来只给你看购物袋里有什么。
第1步:AI 怎么写脚本?
AI 会在脚本里用 from hermes_tools import ... 导入工具,就像你点外卖时从菜单上选菜:
from hermes_tools import web_search, web_extract
results = web_search("Python 3.13 新特性", limit=5)
for r in results["data"]["web"]:
content = web_extract([r["url"]])
# 筛选和处理...
print(summary) # 只把总结打印出来
脚本里能用的工具:web_search(搜索)、web_extract(抓网页)、read_file(读文件)、write_file(写文件)、search_files(搜文件)、patch(改代码)、terminal(跑命令)。
第2步:什么时候 AI 会用它?
当任务满足以下任一条件时,AI 就会主动用代码执行:
- 需要连续调用 3 次以上工具,中间还有处理逻辑
- 要批量筛选数据,或者有条件的判断分支
- 需要对结果做循环处理
最大的好处:中间步骤的结果不会塞进对话里,只有最后 print() 的内容会返回。省 token 省到飞起——比如你让它查 20 个配置文件,它不会把 20 个文件内容全贴出来,只给你一份汇总。
第3步:两个运行模式,怎么选?
在配置文件 ~/.hermes/config.yaml 里设置:
code_execution:
mode: project # 默认,推荐
| 模式 | 工作目录 | Python 解释器 |
|---|---|---|
| project(默认) | 和你平时用 terminal() 一样 |
用你当前激活的虚拟环境 |
| strict | 隔离的临时目录 | 用 Hermes 自己的 Python |
什么时候用 project:你想让脚本能 import pandas、能读取项目里的文件、相对路径都正常。绝大多数情况选这个就对了。
什么时候用 strict:你需要「绝对可复现」——不管用户激活了哪个环境,都用同一个解释器,脚本也碰不到项目文件。
第4步:安全措施
脚本跑在「无菌房」里——API 密钥、密码、令牌统统被剥离。环境变量里凡是名字带 KEY、TOKEN、SECRET、PASSWORD 的都会被过滤掉。
另外还有硬性限制:
| 资源 | 上限 |
|---|---|
| 超时 | 5 分钟 |
| 输出 | 50 KB |
| 工具调用 | 50 次 |
第5步:出错怎么办?
脚本挂了,AI 会收到结构化错误信息——退出码、报错输出、超时提示,一目了然。如果用户中途发新消息,脚本会被立刻终止,AI 会看到「执行被中断」的提示。
实战例子:批量改代码
from hermes_tools import search_files, patch
# 找到所有用了旧 API 的文件,批量替换
matches = search_files("old_api_call", path="src/", file_glob="*.py")
fixed = 0
for match in matches.get("matches", []):
result = patch(path=match["path"], old_string="old_api_call(",
new_string="new_api_call(", replace_all=True)
if "error" not in str(result):
fixed += 1
print(f"修复了 {fixed} 个文件,共 {len(matches.get('matches', []))} 处匹配")
小结
代码执行 = 让 AI 把多步操作打包成脚本,一次跑完,只给你看结果。省 token、省时间、减少来回对话。默认的 project 模式适合绝大多数场景,安全机制也很到位。
下篇预告:AI 能写代码跑代码了,那它能自己管理文件吗?下一篇我们聊聊「文件操作——AI 读写文件的正确姿势」。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/worktrees