OpenProgram · Runtime 设计集

自编程 Agent 工作流

Workflow 是独立Git仓库中的普通Python小项目。它使用现有 Agent method,通过正常import相互调用,并可按任务组合 goal()、agent() 与 llm()。详细设计已按阅读主题拆成三页。

唯一装饰器:Agent method组合:Python import版本:Git commits四个管理入口已拆分分类迁移与App验收进行中

1. 设计问题与边界

系统需要管理多个可复用Workflow。一个Workflow可以调用另一个Workflow,也可以直接调用普通Function、单次模型请求、Agent loop和Goal loop。调用方不应学习另一套API,生成代码也不应把字符串名称交给额外dispatcher。

公开代码只有一种语义:导入Python函数,然后调用。OpenProgram只负责准备可导入代码、建立Runtime context、记录DAG和隔离执行环境。

不在范围:Workflow DSL、自定义revision数据库、远程Marketplace、自动push、后台分布式调度和新的模型工具协议。

2. 当前实现与剩余偏差

当前事实剩余偏差目标页
Agent method 已支持Python调用、工具注册、Runtime继承和DAG。旧设计曾重复增加 @workflow 与调用适配层,现已从目标设计删除。编程模型
发现、创建、修订和用户手动自动执行已经拆为四个注册函数;旧复合入口不再注册。workflow/ 分类目录仍需与Programs运行身份彻底分离,并完成默认App验收。发现、创建与自动执行
openprogram/programs/workflow/ 已是事实来源。Programs尚未展示Exports、Calls / Used by、Git和测试状态。DAG与网页
@workflow、call_workflow()、invoke_workflow()、Function sidecar和公开resolver/executor均不属于目标架构。

3. 文档导航

llm / agent / goal原 #primitives
Workflow项目原 #project
import与组合原 #compose
加载与执行原 #runtime
DAG关系原 #dag
公共验收原 #acceptance
实现交付原 #handoff

4. 参考与取舍

参考采用不采用
Python 导入系统 / contextvars标准package/import与现有调用上下文继承。自定义import hook和字符串dispatcher。
Git commits / git worktree项目历史、提交快照和隔离修改。revisions目录与active pointer。
GitHub 可复用工作流独立可复用单元、明确输入和组合调用。YAML Workflow DSL。
现有OpenProgram Agent method工具注册、DAG、Runtime、权限、取消和provider/model继承。并行注册体系。

5. 实现状态

能力状态说明
参数化入口、多文件package、独立Git仓库阶段1–3完成新项目使用与项目同名的 method_options = dict(task)。
静态跨Workflow imports与可达commit快照阶段4完成缺失/循环拒绝、依赖快照和共享Runtime已有实现证据。
旧零参数单文件Workflow仅恢复兼容只服务显式resume的历史run。
单一Agent authoring设计完成 · 待实现删除decision JSON与独立author turn。
发布前可执行测试门设计完成 · 待实现失败、超时或取消不得产生commit。
程序 → 应用设计完成 · 待实现Workflow作为Application的source type;不增加并列的Workflows分类。

规范设计集入口。阶段4及以前的已实现证据,与三个已批准但没有实现证据的目标保持区分。

已安装知识研究 Workflow 的任务范围

llm_knowledge_research 在官方 arXiv 检索前,使用既有 llm primitive 执行一次有界规划调用。严格 plan 含一至四条有序查询,每条最多 256 字符并标注支持的主题,遵守任务优先级和排除范围。规划只提供检索意图,不提供证据、日期、路径或论文结果。无效 plan 在 HTTP 与输出写入前失败,不做验证重试或固定主题回退。检索保留最多四次、每次 25 条结果的限制,以及既有 2025/2026 年份过滤、去重、来源记录和每个纳入主题最多五篇的选择。报告只渲染 plan 主题和实际规范化的摘要,省略被排除主题的固定文字。调用开始时捕获一次 Asia/Shanghai 获取日期,并原样传给报告。缺少获取元数据的独立渲染调用单独标注当前渲染日期。无结果、规划、传输、取消和写入失败保留既有失败与原输出保护行为。公开验收通过真实注册 Workflow 执行宽范围与窄范围任务,核对实际查询回执和落盘主题、日期,并证明无效 plan 不检索、不写入。真实模型规划质量单独验收。

配置的 Provider 没有经验证的原生或严格工具结构化输出契约时,plan 明确允许既有的 prompt fallback。Schema 验证与零次验证重试仍有效,不新增模型请求、修复 plan 或固定查询。验收覆盖此类 Provider 的生产结构化协议选择,验证单次返回 plan 后才进入来源请求。格式错误仍为结构化失败,不检索、不写报告。真实 Provider 与远程来源结果独立于受控验收记录。

来源结果的相关性

搜索匹配只是候选,不能证明属于用户指定主题。检索后使用一次有界选择调用,将原任务及排除条件与实际规范化标题、摘要比较。只返回既有记录 ID,每个所选主题最多五篇,不生成事实或改写元数据。严格 Schema、明确 prompt fallback 和零次验证重试仍适用。未知、重复或超限 ID 在写入前失败,选择失败保留旧报告。有效空选择生成明确没有已确认相关记录的报告。正文只使用被选中的来源记录并保留相关性顺序,标注为仍需 PDF 核实的所选候选,不再统一断言每篇均对主题有贡献。来源调用限制、日期、去重和来源信息保持不变。公开入口验收包含较新的无关候选与较早的直接记忆安全文献、无效选择及无相关结果。真实模型与来源结果另行验收。

任务相关的来源选择与写报告前的取消检查已实现,并通过独立规格和质量审查。公开受控验收保持原来源元数据、选择顺序、调用方取消和已有报告字节。真实配置 Provider 已执行查询规划、官方 arXiv 检索与记录选择,生成直接相关的记忆安全来源候选,采集元数据一致。源码检查、本地包导入与已安装界面验收分别记录。