最后更新于
用于处理真实代码库的一整套工具——读取、写入、编辑、搜索、git、lint、测试。
coder 家族正是让 OpenHuman 成为一个可行的编码伙伴,而不是一个聊天窗口,后者 假装 了解代码库。
file_read
读取文件(带行号,例如 cat -n).
file_write
写入新文件。
edit_file
定向编辑——通过匹配并替换,并进行严格的唯一性检查。
apply_patch
应用统一 diff。
glob_search
按 glob 模式查找文件。
grep
全树范围的 Ripgrep 风格搜索。
list_files
遍历目录树。
read_diff
两个文件或版本之间的 diff。
git_operations
状态、diff、日志、blame、分支、提交。
run_linter
运行项目的 linter。
run_tests
运行项目的测试命令。
csv_export
将查询结果导出为 CSV。
一个 shell 工具再加上 cat/sed/awk 本可以 技术上 完成所有这些工作。之所以存在这些原生工具,是因为:
编辑会经过唯一性检查,因此代理不会不小心覆盖错误的行。
读取结果会带回行号,方便代理在后续操作中引用。
Git 操作会把输出解析为结构化数据,而不是让代理去抓取底层 porcelain 输出。
linter 和测试运行都接入了项目的实际命令,而不是泛泛的猜测。
文件系统工具遵守工作区边界——没有明确许可,代理无法在其外部读取或写入。应用其余部分也使用同一边界,用于 OPENHUMAN_WORKSPACE.
最后更新于