深色
风格
视觉表达
S 循环切换
经典
稳定的技术默认风格
信号流
突出动态流向
蓝图
工程评审
编辑风格
适合发布与上线说明
动态
演示
导出
导出图表
便携、整洁的输出
E
分享
分享卡片
1200×630 PNG
路径分享卡片
1200×630 PNG
可达范围分享卡片
1200×630 PNG
复制分享卡片
复制 PNG 到剪贴板
复制图表
复制 PNG 到剪贴板
图像
PNG
无损图像
JPEG
紧凑图像
WebP
现代图像格式
矢量与动效
SVG
可编辑矢量图
WebM
6 秒动效
CodingAgentHarness:CodingAgent 接入 Harness 的适配分层
←
引导视图
探索此系统
沿精选路径逐步查看,而不改变源图表。
节点
下一步
→
▶
播放故事
#
复制此刻
显示全部
CodingAgentHarness:CodingAgent 接入 Harness 的适配分层
由 Archify 生成的架构图。
CodingAgentHarness · run/resume/deliver/runReady · 架构组件
CodingAgentHarness
run/resume/deliver/runReady
AgentHarness · 租约/切片/结果映射 · Harness 引擎与台账 · engine
AgentHarness
租约/切片/结果映射
engine
HarnessExecutionAdapter · ai4j-coding · open/run/snapshot · 适配层(ai4j-coding):每切片开一个真实 CodingSession · adapter
HarnessExecutionAdapter
ai4j-coding · open/run/snapshot
adapter
CodingSession · 每切片真实会话 · 照旧 · 适配层(ai4j-coding):每切片开一个真实 CodingSession · adapter
CodingSession
每切片真实会话 · 照旧
adapter
HarnessStore · File/JDBC · HarnessState · Harness 引擎与台账 · ledger
HarnessStore
File/JDBC · HarnessState
ledger
Harness 覆盖层 · Registry/Executor/Interceptor/Prompts · 适配层(ai4j-coding):每切片开一个真实 CodingSession · overlay
Harness 覆盖层
Registry/Executor/Interceptor/Prompts
overlay
applyDelivery · 按 callId 回填待决输出 · 适配层(ai4j-coding):每切片开一个真实 CodingSession · adapter
applyDelivery
按 callId 回填待决输出
adapter
① run/deliver
② open()
③ runSingleTurn
④ applyHarnessOverlay
⑤ 注入 context
⑥ harness_*→Gateway
⑦ persistOutcome/事件
⑧ deliver→applyDelivery
适配层(ai4j-coding):每切片开一个真实 CodingSession
Harness 引擎与台账
图例
前端
后端
数据库
安全
就绪
章节 01 / 01
引导章节
图表指南
探索此系统
×
正在检查已编译语义
01
查找任意节点
搜索标签、职责、类型和稳定 ID。
/
02
追踪路径
查看两个语义节点如何按编写方向连接。
R
03
查看完整系统
打开带实时视口和稳定节点的语义雷达。
M
04
比较语义类型
统计角色、显示流量并比较直接编写的连接。
L
05
播放引导故事
浏览已编写的章节和真实关系。
P
06
进入演示模式
让实时图表占满视口,同时不改变导出。
F
E
导出
T
主题
S
风格
0
重置
+
放大
-
缩小
Esc
关闭
查找节点
×
⌕
/
没有匹配的节点
语义护照
已验证来源
编写可达范围
上游
0
下游
0
×
复制链接
关系
路径探测
选择起点节点
查找起点
复制链接
清除
在图表中选择两个语义节点
←
▶
旅程
→
总览
先选择来源,再选择目标;方向很重要。
语义透镜
比较系统角色
×
最多选择两种语义类型。选择一种可显示其真实流量;选择两种只比较直接编写的关系。
选择一种类型以检查其节点和相连关系。
复制链接
清除
语义雷达
正在构建总览
打开雷达
×
点击节点
拖动平移
语义雷达需要更多地图可见空间。
路径
地图
透镜
阅读
100%
门面 vs 引擎
• CodingAgentHarness.file(dir)/jdbc(ds,id) 只是把 CodingAgent 包进 AgentHarness;租约、写面、持久化全在引擎侧
• run/runTask/resume/deliver/runReady 全部委派给 harness;getGateway() 可直接拿到唯一写面
applyHarnessOverlay 注入
• budget→AgentOptions(maxSteps/wallClock/tokenBudget);HarnessToolRegistry 追加 8 个 harness_* 管理工具
• HarnessToolExecutor 是强制边界:harness_* 转 Gateway 落账,业务工具照旧;HarnessToolInterceptor 保留宿主拦截器;systemPrompt 追加 HarnessPrompts.instructions(+resumed/+fidelity)
切片状态往返
• open 解码 payload.codingSessionState → newSession(sessionId,state);snapshot() → codingSession.exportState() 回写
• applyDelivery:按 wait.payload.callId 把 deliver 值回填到 MemorySnapshot 的 pending function_call_output / CodeAct 标记;APPROVAL 写入 HARNESS_APPROVAL_GRANTED 让模型重试