ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

oh-my-pi eval 工具指南:持久化 Python/JS 内核,还能在代码里回调 agent 工具

oh-my-pi eval 工具指南:持久化 Python/JS 内核,还能在代码里回调 agent 工具 oh-my-pi eval 工具指南持久化 Python/JS 内核还能在代码里回调 agent 工具【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pioh-my-piOMP是一个将 IDE 深度集成的开源 AI 编程助手coding agent。它的eval 工具是区别于其他 AI 编程工具的独特能力让 AI 在持久化的 Python / JavaScript 内核中分步执行代码变量状态跨调用永不丢失更酷的是你可以直接在代码里回调 agent 的工具、发起一次模型补全、甚至派出子 agent 干脏活。一、eval 工具是什么为什么不用python -c很多 AI 编程工具跑 Python 的方式是每次都起一个新进程类似python -c这意味着每次执行都是一次性环境上一行定义的变量、导入的库下一行全忘了。oh-my-pi 的 eval 工具彻底改变了这一点特性传统python -c方式oh-my-pi eval 持久内核变量状态每次执行后丢失✅ 跨多次调用持续保留执行单元整段脚本一次性跑一次工具调用 一个 cell可增量推进结构化输出只有 stdout 文本display()捕获 JSON / 图片 / Markdown与 agent 互通完全隔离✅ 代码内可直接调用 agent 工具、子 agent取消/超时需自己处理内建超时看门狗与取消信号官方文档明确要求临时执行代码请走 eval不要绕道 bash 去调python -c、node -e见 docs/tools/eval.md。它的核心理念是增量式工作导入 → 定义 → 测试 → 使用每一步一个 cell某一步出错就只重跑那一步前面的成果原样保留在内核里。二、四语言持久内核Python、JavaScript、Ruby、Juliaeval 工具内置 4 个语言后端各自维护独立的持久运行时互不干扰重置 Python 不会影响 JS 的状态代号运行时默认状态持久化方式pyIPython 风格的 Python 子进程内核✅ 默认开启按会话 ID 工作目录 解释器复用jsBun worker VM✅ 默认开启会话内常驻支持顶层awaitrbRuby 内核⚙️ 需手动开启常驻TOPLEVEL_BINDINGjlJulia 内核⚙️ 需手动开启常驻Main命名空间 小技巧每个语言都有reset开关可以在下一次调用前只清空该语言的内核其他语言的变量原封不动。下面这张图就是一次真实的 eval 执行模型在持久 Python 内核里运行 matplotlib 代码图表、警告、结果说明都以富媒体形式直接回传到界面Python 后端的实现非常轻单个子进程 NDJSON 行协议不依赖 Jupyter、不需要额外 pip 安装Python 3.10 即可内核封装位于packages/coding-agent/src/eval/py/。它还支持%pip、%timeit、!cmd等 IPython 风格魔法命令display()能直接回传 pandas 表格、matplotlib/plotly 图形。三、预置辅助函数一个超能力 REPL每个内核启动时都会注入一套跨语言的预置助手函数让代码天然长在项目上display(value)—— 结构化输出JSON、图片、Markdown 都能直接画给模型看read(path)/write(path, content)—— 直接读写项目文件支持local://协议env(...)/output(...)—— 查环境变量、取回之前工具调用的完整输出tool.name(args)—— ⭐ 在代码里直接调用 agent 的任何注册工具completion(...)/agent(...)—— ⭐ 发起一次性模型调用、派出子 agentparallel(thunks)/pipeline(items, ...stages)—— 有界并发池与分阶段流水线log()/phase()/budget—— 记录日志、打阶段标记、查询预算比如让 AI 批量处理 500 个文件它会写一个 cell用parallel在受限线程池里并发处理保持顺序、隔离失败——这比模型逐个调用工具快得多。四、最大亮点在代码里回调 agent 工具 这是 eval 工具最反直觉也最强大的部分——代码不再是被动执行的脚本而是 agent 的指挥台1. 调用任何注册工具tool.grep({pattern: TODO, path: src})代码里一行搞定 grep / read / edit 等 31 个内置工具结果直接作为 Python 对象返回方便继续用代码处理。2. 一次性模型补全completion()无需工具、无历史的一锤子模型调用支持smol快/default当前/slow最强三档模型还能传 JSON Schema 直接拿到解析好的结构化对象。适合在循环里做翻译一批注释给每条日志打标签这类批处理。3. 派出子 agentagent()在代码里 spawn 一个子 agent 去探索代码库、跑结构化任务支持isolated请求独立 worktree、schema约束返回结构。多个子 agent 还能用handletruepipeline组成无环任务图上游子 agent 的输出自动喂给下游失败只影响自己的子树。4. 预算守卫budgetbudget.total/budget.spent()/budget.remaining()让你能在代码里自我节制避免批量任务失控烧钱。下面是子 agent 协同工作的现场多个探索 agent 并行分析packages/下的 agent、ai、coding-agent 等目录五、快速上手安装与开启bun install -g oh-my-pi/pi-coding-agent安装后eval.py与eval.js默认开启无需任何配置。如需 Ruby / Julia在设置中打开eval.rb/eval.jl或设置环境变量PI_RB/PI_JL即可。Python 内核默认按会话复用python.kernelModesession也可改成每次调用新建内核超时默认 30 秒传timeout: 0可禁用看门狗。六、使用技巧清单 ✅增量推进把长任务拆成多个小 cell导入 → 定义 → 测试失败时只重跑出错那一步别重复导入上一 cell 的顶层变量会自动存活重复 import / 声明是浪费cell 内并发需要并行时用 cell 内的parallel而不是指望模型连发多次工具调用重图重表用display()回传数据模型看到的是结构化内容而非被截断的终端文本总结oh-my-pi 的 eval 工具把持久内核 代码回调 agent这两件事做成了标配——Python/JS 状态跨调用常驻代码里能调工具、能调模型、能派子 agent是 AI 编程助手里真正把 IDE 和 REPL 焊在一起的设计。核心实现可参考packages/coding-agent/src/tools/eval.ts与packages/coding-agent/src/eval/完整文档见docs/tools/eval.md和docs/python-repl.md。【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表