如何构建从 Harness 规范到 SSE 审计的闭环体系,实现 Agent 开发基础?

2026-09-13 18:062阅读0评论建站教程
  • 内容介绍
  • 文章标签
  • 相关推荐

Agent 开发的混沌与需求

当我们第一次接触 AI Agent 时那种"哇塞!"的惊叹感是真实实存在的。但很迅速, 这种崭新鲜感就被现实中的杂乱所取代——Prompt 调试、 好家伙... 工具集成、流程编排、效果评估、可靠审计等环节像一盘散沙,缺乏统一的抓手。

我可是吃过亏的。 为哪些百度不收录这样的问题时常困扰我们。实际情况是这并非百度对内容质量有特别要求,而是这是因为搜索引擎需要明白你的内容有没有能为用户提供给实际价值。当你的内容结构杂乱、关键词布局不合理或技术手段原理未清晰展示时搜索引擎就不容简单以准确评估其实际价值。而 Agent 开发领域正是如此——各个环节散落在不同工具和文档中,缺乏连贯性和可追踪性。

Workflow:Agent 开发的基础—从 Harness 规范到 SSE 审计的闭环体系

我跪了。 让我们回到核心问题:Agent 开发为哪些需要 Workflow?

Harness 规范:行为契约与约束

LLM 的三级防护体系

层次低了。 Harness当前这个隐喻并非偶然——它来自马术世界, 不是为了约束马的奔跑,而是让马的力量能够被骑手感知和引导。在 Agent 语境下 Harness 规范定义了 LLM 的三级防护体系

  1. ProcessGuard流程级守卫

    • maxLlmRounds: 50
    • maxTotalTokens: 500,000
    • maxBackwardCount: 3
  2. ActivityGuard活动级守卫

    • maxLlmLoopCount: 5
    • fcLoopMaxRounds: 5
    • tokenBudgetPerActivity: 50,000
  3. ClassificationProfile分类级守卫,深得我心。

    • 不同流程分类继承不同默认守卫配置

javascript GuardConfig { processGuard: { maxLlmRounds: 50, maxTotalTokens: 5e6, maxBackwardCount: 3, deepDesignRequired: true }, activityGuard: { llmMode: HARNESS, maxLlmLoopCount: 5, fcLoopMaxRounds: 5, tokenBudgetPerActivity: 5e4 } },我给跪了。

我晕... 这不是简洁的"约束",这是一份行为契约LLM承诺在maxLlmRounds轮内完成交付,在tokenBudgetPerActivity预算内产出最终还是结果是;而流程引擎承诺只要LLM在契约内行为,就不会强较大制中断。

ActivityType:Agent 的类型签名

Harness规范不仅是参数配置, 它实际情况是定义了Agent的类型签名

体验感拉满。 javascript ActivityDefinition { activityType: TASK | LLMAGENT | HUMAN | AGENTEVENT,

skills:
    SKILLS | SCENE_GROUP,
controlMode:
    SINGLE | HARNESS | PROGRESSIVE,
humanInvolvement:
    CONFIRM | FORM | APPROVAL | DELEGATE,
requiredInputs:
    ,
producedOutputs:

}

有了类型签名,Agent就是可组合的下游Agent能够静态检查requiredInputs有没有被上游producedOutputs覆盖。 这事儿我可太有发言权了。 这是从"相信LLM能自己搞对"到"工程项目化地保证LLM不会搞错"的关键转变。

Loop 调用:落实引擎与终止保证

FC-Loop:原子级循环

一句话。 Function Calling Loop 是Agent落实的原子引擎, 本质是ReAct模式的工程项目化实现

javascript while { reasoning = llm // 推理:LLM决定下一步 if { for { result = executeTool // 行动:落实工具 messages.push // 注入最终还是结果是反馈 } } else { isDelivered = true // LLM觉得任务完成则交付 } }

三层循环嵌套结构

完善一下。 Workflow中的Loop有三个层级: 1. FC-Loop单个活动内推理-行动循环 2. Harness LoopLLM在更多个不同活动间渐进式收敛 3. Process Loop流程在场景组间推进与回退

这三层嵌套形成了从微观到宏观的循环嵌套结构表达Agent递归决策能力。

四道终止防线

出岔子。 怎样保证循环一定会终止?OODER通过四道防线: 1. 超时分级控制单工具/组/过程/总流程四级超时设定 2. 降级决策器工具调用失利时智能选择沉重试/回滚/降级策略 3. 资源条件预算递减每一轮Loop消耗预算直至耗尽强较大制终止 4. 人机协同中断人类可随时介入终止异常Flow

SceneGroup vs SubProcess:组合抽象革命

SceneGroup 的黑盒原则

传统方式Workflow采用子流程,但在Agent场景存在三较大裂缝: 1. 调度权冲突:父流程可见子节点引起意图泄露; 一句话概括... 2. 人机阻断冲突:人工制作节点会阻断整个Flow; 3. 上下文泄漏:共享上下文引起状态干扰。

OODER提出SceneGroup替代SubProcess,遵循黑盒组合原则

  • 各个SceneGroup是独立封闭自驱单元;
  • 流程只能注入上下文作用于其运行而不能调度其内部节点;
  • SceneGroup完整交付后整体返回。

翻车了。 javascript SceneGroupStateModel { sceneGroupId, //独立标识符, lifecycleState:, //创建→激活→挂起→归档, contextManager:, //独立业务配置/知识库绑定, participantsManager:, //独立参与者管理, }

优势显著: ✅ 独立演进SG-UNDERSTAND可彻底沉重构而不作用于SG-DESIGN; ✅ 并行落实无依赖SceneGroup并行运行; 我可是吃过亏的。 ✅ 失利隔离SG-QUALITY校验失利仅作用于DESIGN沉重设计;

NLP-Chat → Dump SSE → Audit 流水线

SSE事件体系设计

Server-Sent Events 在OODER中承担更较深层角色——落实过程忠实记录。每条事件包含完整上下文: - processInstId + activityId + round + tokenUsage + timestamp; - 对齐六种ActivityType: flow_thinking flow_tool_callflow_tool_output等;

javascript{ SseEventAssembler构建结构化事件推送至前端, 让Agent落实过程对用户可见而非黑盒。 },栓Q了...

Audit矩阵与闭环恢复示例A/B/C三类验证矩阵形成质量空间范围:

分类 验证目标
A-Basic 基础验证
B-Medium 路由分支能力
C-Complex 跨场景协作能力

具体案例: javascript{ C-CRUD-001发觉componentType传递数据断裂, 根因解析定位activityDefinition配置缺陷, 恢复方案自动应用至ProcessDefinition。 },调整一下。

也许吧... 当前这个闭环体系让Workflow成为元层次Agent:从自身落实推导测试→发觉问题→改进定义就像操作系统通过监控自身性能优化调度策略一样。

Workflow-Native 展望与底层哲学思想思考当我们探讨Agent时究竟探讨哪些?

从Prompt Engineering到Workflow Engineering时代转移本质在于:将核心竞逐力从推理能力转向约束和组合能力。一个薄弱但受严格约束工作岗位于优良基础设施上的模型往往比强较大但自主运作于差劣基础设施上的模型更稳健可靠。

OODER框架已实现80%愿景落地路线图明确剩余20%包括: 1. SG内HUMAN不阻断功能增强较大; 别怕... 2. SG产出物统一契约完善; 3. Workflow自我演进机制优化;

你猜怎么着? 最终还是目标明确:Workflow不是枷锁而是道路。道路约束了方向却也才使得前进成为有可能——没有道路之处只有荒野。

Agent 开发的混沌与需求

当我们第一次接触 AI Agent 时那种"哇塞!"的惊叹感是真实实存在的。但很迅速, 这种崭新鲜感就被现实中的杂乱所取代——Prompt 调试、 好家伙... 工具集成、流程编排、效果评估、可靠审计等环节像一盘散沙,缺乏统一的抓手。

我可是吃过亏的。 为哪些百度不收录这样的问题时常困扰我们。实际情况是这并非百度对内容质量有特别要求,而是这是因为搜索引擎需要明白你的内容有没有能为用户提供给实际价值。当你的内容结构杂乱、关键词布局不合理或技术手段原理未清晰展示时搜索引擎就不容简单以准确评估其实际价值。而 Agent 开发领域正是如此——各个环节散落在不同工具和文档中,缺乏连贯性和可追踪性。

Workflow:Agent 开发的基础—从 Harness 规范到 SSE 审计的闭环体系

我跪了。 让我们回到核心问题:Agent 开发为哪些需要 Workflow?

Harness 规范:行为契约与约束

LLM 的三级防护体系

层次低了。 Harness当前这个隐喻并非偶然——它来自马术世界, 不是为了约束马的奔跑,而是让马的力量能够被骑手感知和引导。在 Agent 语境下 Harness 规范定义了 LLM 的三级防护体系

  1. ProcessGuard流程级守卫

    • maxLlmRounds: 50
    • maxTotalTokens: 500,000
    • maxBackwardCount: 3
  2. ActivityGuard活动级守卫

    • maxLlmLoopCount: 5
    • fcLoopMaxRounds: 5
    • tokenBudgetPerActivity: 50,000
  3. ClassificationProfile分类级守卫,深得我心。

    • 不同流程分类继承不同默认守卫配置

javascript GuardConfig { processGuard: { maxLlmRounds: 50, maxTotalTokens: 5e6, maxBackwardCount: 3, deepDesignRequired: true }, activityGuard: { llmMode: HARNESS, maxLlmLoopCount: 5, fcLoopMaxRounds: 5, tokenBudgetPerActivity: 5e4 } },我给跪了。

我晕... 这不是简洁的"约束",这是一份行为契约LLM承诺在maxLlmRounds轮内完成交付,在tokenBudgetPerActivity预算内产出最终还是结果是;而流程引擎承诺只要LLM在契约内行为,就不会强较大制中断。

ActivityType:Agent 的类型签名

Harness规范不仅是参数配置, 它实际情况是定义了Agent的类型签名

体验感拉满。 javascript ActivityDefinition { activityType: TASK | LLMAGENT | HUMAN | AGENTEVENT,

skills:
    SKILLS | SCENE_GROUP,
controlMode:
    SINGLE | HARNESS | PROGRESSIVE,
humanInvolvement:
    CONFIRM | FORM | APPROVAL | DELEGATE,
requiredInputs:
    ,
producedOutputs:

}

有了类型签名,Agent就是可组合的下游Agent能够静态检查requiredInputs有没有被上游producedOutputs覆盖。 这事儿我可太有发言权了。 这是从"相信LLM能自己搞对"到"工程项目化地保证LLM不会搞错"的关键转变。

Loop 调用:落实引擎与终止保证

FC-Loop:原子级循环

一句话。 Function Calling Loop 是Agent落实的原子引擎, 本质是ReAct模式的工程项目化实现

javascript while { reasoning = llm // 推理:LLM决定下一步 if { for { result = executeTool // 行动:落实工具 messages.push // 注入最终还是结果是反馈 } } else { isDelivered = true // LLM觉得任务完成则交付 } }

三层循环嵌套结构

完善一下。 Workflow中的Loop有三个层级: 1. FC-Loop单个活动内推理-行动循环 2. Harness LoopLLM在更多个不同活动间渐进式收敛 3. Process Loop流程在场景组间推进与回退

这三层嵌套形成了从微观到宏观的循环嵌套结构表达Agent递归决策能力。

四道终止防线

出岔子。 怎样保证循环一定会终止?OODER通过四道防线: 1. 超时分级控制单工具/组/过程/总流程四级超时设定 2. 降级决策器工具调用失利时智能选择沉重试/回滚/降级策略 3. 资源条件预算递减每一轮Loop消耗预算直至耗尽强较大制终止 4. 人机协同中断人类可随时介入终止异常Flow

SceneGroup vs SubProcess:组合抽象革命

SceneGroup 的黑盒原则

传统方式Workflow采用子流程,但在Agent场景存在三较大裂缝: 1. 调度权冲突:父流程可见子节点引起意图泄露; 一句话概括... 2. 人机阻断冲突:人工制作节点会阻断整个Flow; 3. 上下文泄漏:共享上下文引起状态干扰。

OODER提出SceneGroup替代SubProcess,遵循黑盒组合原则

  • 各个SceneGroup是独立封闭自驱单元;
  • 流程只能注入上下文作用于其运行而不能调度其内部节点;
  • SceneGroup完整交付后整体返回。

翻车了。 javascript SceneGroupStateModel { sceneGroupId, //独立标识符, lifecycleState:, //创建→激活→挂起→归档, contextManager:, //独立业务配置/知识库绑定, participantsManager:, //独立参与者管理, }

优势显著: ✅ 独立演进SG-UNDERSTAND可彻底沉重构而不作用于SG-DESIGN; ✅ 并行落实无依赖SceneGroup并行运行; 我可是吃过亏的。 ✅ 失利隔离SG-QUALITY校验失利仅作用于DESIGN沉重设计;

NLP-Chat → Dump SSE → Audit 流水线

SSE事件体系设计

Server-Sent Events 在OODER中承担更较深层角色——落实过程忠实记录。每条事件包含完整上下文: - processInstId + activityId + round + tokenUsage + timestamp; - 对齐六种ActivityType: flow_thinking flow_tool_callflow_tool_output等;

javascript{ SseEventAssembler构建结构化事件推送至前端, 让Agent落实过程对用户可见而非黑盒。 },栓Q了...

Audit矩阵与闭环恢复示例A/B/C三类验证矩阵形成质量空间范围:

分类 验证目标
A-Basic 基础验证
B-Medium 路由分支能力
C-Complex 跨场景协作能力

具体案例: javascript{ C-CRUD-001发觉componentType传递数据断裂, 根因解析定位activityDefinition配置缺陷, 恢复方案自动应用至ProcessDefinition。 },调整一下。

也许吧... 当前这个闭环体系让Workflow成为元层次Agent:从自身落实推导测试→发觉问题→改进定义就像操作系统通过监控自身性能优化调度策略一样。

Workflow-Native 展望与底层哲学思想思考当我们探讨Agent时究竟探讨哪些?

从Prompt Engineering到Workflow Engineering时代转移本质在于:将核心竞逐力从推理能力转向约束和组合能力。一个薄弱但受严格约束工作岗位于优良基础设施上的模型往往比强较大但自主运作于差劣基础设施上的模型更稳健可靠。

OODER框架已实现80%愿景落地路线图明确剩余20%包括: 1. SG内HUMAN不阻断功能增强较大; 别怕... 2. SG产出物统一契约完善; 3. Workflow自我演进机制优化;

你猜怎么着? 最终还是目标明确:Workflow不是枷锁而是道路。道路约束了方向却也才使得前进成为有可能——没有道路之处只有荒野。