自编程 AI Agent#
自编程 AI agent 可以在工作过程中创建或修改可执行工作流。在 OpenProgram 中,
这些工作流使用 Agent method 装饰器:agent 用常规工具编辑源文件,
runtime 验证并加载函数,后续轮次可通过与现有工具相同的注册表调用它。
这项能力的范围小于不受限制的自我修改。OpenProgram 不允许模型静默替换 runtime 或绕过验证。可编辑单元是能够审查的函数,具有声明的接口、显式工具访问、 执行记录和常规源码版本控制。
Agent 编写什么#
Agentic function 将确定性控制流与模型决策结合:
from openprogram import Agent
class ExampleAgent(Agent):
tools = []
method_options = {
'review_then_revise': {'tool': True},
}
def review_then_revise(self, draft: str) -> str:
"""Review a draft, then revise it against the review."""
review = self(f"Identify concrete defects in this draft:\n\n{draft}")
return self(f"Revise the draft using this review:\n\n{review}\n\n{draft}")
_example_agent = ExampleAgent()
review_then_revise = _example_agent.review_then_revise
Python 函数体固定所需的执行顺序,模型处理两个语义步骤。每次调用都可在 OpenProgram 的执行上下文中查看。
Agent 如何创建函数#
安装并启动 OpenProgram:
curl -fsSL https://openprogram.io/install | sh
openprogram
然后向 agent 请求一个范围明确的工作流,例如:
创建一个名为 review_then_revise 的 agentic function。它必须审查草稿,
根据审查意见修订,仅暴露最终输出,并包含冒烟测试。提交前向我展示 diff。
随附的 Agentic function API 定义文件布局、装饰器合同、验证步骤和冒烟测试。 Watcher 可以加载已批准的函数,无需重启 worker。
仍然适用的 Runtime 控制#
- 工具访问由函数的显式 runtime 调用和配置的审批策略决定。
- 函数调用、模型调用及其上下文关系记录在会话 DAG 中。
- 资源限制、取消、结构化输出验证和提供商用量核算仍由 runtime 负责。
- 源码修改仍是普通文件:可以在发布前检查、测试、回退和审查。
何时使用#
当重复任务需要可复用、可检查的流程,而语义步骤仍需要模型判断时,使用自编程。 当整个操作都是确定性操作时,使用普通函数。 当操作已有稳定实现时,使用现有工具。
完整执行合同见 Agentic Programming 指南、
Agent method 参考和
设计理由。
Last updated · 2026-10-10