开发中(尚未发布)
开发中
这里记录下一次发布前的暂存变更;正式发布后,请把相关条目迁入对应版本号下。
- 移除了剩余公开旧兼容别名,统一改为
session/request: 公开 facade 类型、runtime helper surface、CLI request 列表路径以及 inspection helper 现在都直接要求使用规范名称。这是一轮破坏性清理;如果下游代码仍在导入旧公开 facade 类型、调用旧 request 列表 helper,或依赖旧 inspection helper 名称,现在都需要同步迁移。
已发布
0.0.287
- 应用现在可以通过公共 runtime facade 持久化 app-owned run artifacts: 新增
recordArtifact(runtime, { sessionId, requestId, kind, path, content }),长时工作区可以把应用自己生成的文件挂到持久化 run surface 上,而不必直接触碰私有 persistence 内部实现。 - 评估导出继续保持 generic,同时携带 app-owned artifacts:
exportEvaluationBundle(...)会继续导出持久化 artifact 及可选 artifact 内容,但不会在公共 runtime contract 里强加 harness-owned role 或 coding-specific artifact 语义。
0.0.285
- 默认本地 checkpointer 现在改为使用 `runtime/` 下的 sqlite: 内建
checkpointer/default预设现在会解析为runtime/checkpoints.sqlite上的SqliteSaver,因此默认可写 data layout 里的 runtime records、checkpoint 恢复状态、durable knowledge 与 vector persistence 都统一落到 sqlite-backed store,而不再让 checkpoint 恢复继续停留在runtime/checkpoints.json。
0.0.282
- runtime storage 现在显式区分共享 application folder 和可写 data folder:
kind: Runtime现在公开spec.applicationRoot、spec.dataRoot与spec.profile,因此同一套打包出来的只读config/+resources/application folder 可以被多个 runtime profile 共享,而每个 profile 继续指向各自独立的可写 data folder。运行时现在会把已加载的 workspace 根视为 application folder,并把所有可写持久化统一锚定到解析后的 data root,而不再默认混在一个文件系统根下。 - 默认本地持久化路径现在按职责落到更清楚的 data 子目录: runtime 自己的 SQLite 运行记录和默认 sqlite-backed checkpointer 现在都会落到 data root 下的
runtime/,durable knowledge 和向量持久化则继续落到knowledge/。内建默认值现在会解析成knowledge/records.sqlite、knowledge/vectors.sqlite、runtime/checkpoints.sqlite这类路径,把共享 application 资产和 profile 专属运行时状态明确拆开。
0.0.275
- durable memory 现在可作为可嵌入的 knowledge module 使用: 包根目录现在导出
createKnowledgeModule(...)、readKnowledgeRuntimeConfig(...)与共享的KnowledgeRuntimeContextcontract,下游应用因此可以在AgentHarnessRuntime之外复用同一套 durable memorize/recall 生命周期,而不必再导入私有的runtime/harness/system/*内部模块。独立模块继续把 merge/review、projection 与 reindex 维持在 runtime-governed 语义内,同时对外保持稳定的MemoryRecordsurface,而不是暴露 backend-specific 存储细节。 - knowledge policy 现在可以打包成独立的单例 YAML 对象: durable memory 配置读取器现在既接受现有的
RuntimeMemory.spec,也接受完整的kind: KnowledgeRuntime单例文档;仓库同时新增了对应的config/knowledge/knowledge-runtime.yaml示例以及双语 memory 文档,说明如何在未来的 knowledge worker 或 knowledge server 中复用同一套策略。 - `agent-harness init` 现在默认生成独立 knowledge policy 的镜像配置: 新创建的工作区现在会同时带上
config/runtime/runtime-memory.yaml作为 runtime 内部 durable-memory 默认值,以及config/knowledge/knowledge-runtime.yaml作为未来把同一套 memorize/recall policy 外置到独立 worker 或 service 时的镜像对象。
0.0.274
- 示例工作区现在按复杂度编号: 顶层 example 工作区现统一改成
00_到07_前缀,仓库里的示例顺序会从最小的 hello-skill starter 一直递进到 stock-research 工作区。README、docs、release automation 以及 example 回归测试也都已同步到这些编号路径,保证示例发现和版本同步脚本继续一致。 - 可修复的 `write_todos` schema 失败现在会在运行时内部自动重试,而不是直接让 run 失败: 当 DeepAgent 内建
write_todos工具因为缺少 todo 条目里必需的content字段而触发校验失败时,runtime 现在会把它识别为可修复的兼容性问题,自动追加一条精确的重试指令,明确要求模型重发包含content与status的完整 todo 条目,然后再次执行本次调用,而不是立刻终止。现在这套恢复行为会一致覆盖 direct invoke 路径和 stream/listener 驱动的执行路径,同时继续保留现有write_todos的完整条目语义,不会引入仅更新状态的 patch 语义。Issue #62
0.0.269
- 受治理工具审批现在支持明确的运行时决策模式: runtime 治理下的工具现在既可以继续走人工审批,也可以直接
auto-approve,或在不开审批 inbox 的前提下执行auto-reject/deny-and-continue;同时治理快照与 operator overview 诊断都会显式暴露每个工具的决策模式。 - A2A discovery 现在补齐了更轻量的兼容路径: A2A bridge 现在会在 agent-card 路径上响应 discovery 友好的
HEAD/OPTIONS请求,写出支持版本 headers,并在GetExtendedAgentCard之外新增接受 JSON-RPCGetAgentCard别名,让混合 A2A 客户端更容易接入,同时不改变持久化 runtime task 模型。 - A2A card discovery 现在可选携带 registry 与 detached signature 提示: 在配置后,A2A bridge 可以通过 agent-card payload 与 card-response headers 暴露 registry URL 和 detached signed-card metadata,让外围 registry 或 gateway 可以试验 signed-card discovery,同时不把
agent-harness变成第二套身份系统。
0.0.268
- 公开 runtime / session / request 输出现统一只使用 `sessionId` 和 `requestId`: 公开运行时记录、stream item、审批、转写消息、memory provenance 与各协议适配器现在都只暴露
sessionId/requestId,不再在同一份 payload 上重复携带sessionId/requestId别名。下游客户端因此可以在 runtime API、流式输出、A2A、AG-UI、ACP 与持久化运行时记录之间稳定消费同一组身份字段,而不必再写别名回退逻辑。Issue #61 - 公开 stream / result payload 不再混用重复身份别名: 公开
streamEvents(...)、result 快照、session/request 查询,以及投影出来的 trace/runtime 记录,现在都会彻底移除旧的公开sessionId/requestId字段,因此客户端在重建请求状态、把 delta 对齐到最终结果,或跨协议面关联运行时证据时,不再需要猜哪组字段才是规范身份。Issue #61
0.0.266
- 公开 harness 流式路径现在会保留实时 assistant 文本增量:
streamEvents(...)现在会继续向外透传流式content、content-blocks、tool-result,不再只剩生命周期 / upstream / result 记录;同时成功路径上的文本 chunk 到达时也会立即持久化并发出output.deltaruntime event。这样直接消费公开 harness stream 的下游客户端终于能拿到真正的增量 assistant 文本流,包括把 harness stream bridge 到 UI token 更新的桌面壳。 - Runtime YAML 现在公开支持 tool module discovery scope:
kind: Runtime现在可以声明toolModuleDiscovery.scope: recursive | top-level,下游 workspace 因此可以继续保留默认的递归resources/tools/扫描,也可以在不 patch 私有dist/workspace/object-loader.js内部实现的前提下,把模块发现明确限制为每个工具根目录下的直接文件。这套策略现在会一致地应用到 workspace 本地工具模块、附加资源工具模块,以及外部资源工具模块水合路径上。Issue #60
0.0.263
- 工作区工具扫描现在会跟随本地 `resources/tools` 的 symlink 模块: 本地 workspace 的 tool module 发现现在会跟随 symlink 文件和目录,同时继续跳过
node_modules,因此开发态通过 symlink 投射进运行时 workspace 的resources/tools/*.mjs不会再在发现阶段被漏掉。这修复了像Tool wallee-web-search-toolset bundle ref webSearch does not exist这类 bundle/toolset 校验失败场景,其根因是被引用的模块工具虽然存在,但因为工作区挂载文件是 symlink 而被扫描逻辑跳过。Issue #59
0.0.260
- toolset/bundle 现在能解析省略 `name` 的导出函数工具: workspace 在编译函数工具时,如果解析后的 tool object 没有显式
name,现在会回退到该工具的implementationName,因此像resources/tools/*.mjs里export const webSearch = tool({ ... })这样的导出,仍然可以被 YAML tool bundle/toolset 通过webSearch正常引用,而不必在模块定义里再重复写一次name: webSearch。Issue #59 - 工作区启动扫描现在会稳定忽略 vendored `node_modules` 目录树: 附加资源 tool module 发现现会跳过
tools/node_modules/@@P1@@,不会再把依赖包目录树误当作工作区自有 tool 或 skill 继续向下扫描。这解决了下游桌面壳把大型资源依赖树打进resources/tools/node_modules时会真实拖慢甚至阻塞启动的问题,也让启动耗时继续集中在工作区自有定义,而不是依赖负载上。 - 启动 ready 路径不再被后台健康轮询和启动恢复阻塞,并补齐更细的阶段耗时: 设置
AGENT_HARNESS_STARTUP_TIMING=1后,runtime 会把 workspace load、validation、binding compilation、MCP hydration、persistence init、startup recovery 等阶段的耗时写到 stderr,方便下游应用直接定位启动时间耗在哪一段。现在 runtime 初始化返回前不再等待 health monitor 启动完成或 startup recovery 跑完,这会缩短下游桌面壳在干净启动场景下的 ready 延迟。对于 agent MCP 配置里已经显式声明 MCP tool allowlist 的情况,workspace MCP hydration 也不再为此路径主动调用远端listTools()枚举,避免慢速远端 MCP 发现过程阻塞 ready。内部 health/operator 摘要读取现在也只查询活跃 run 状态和 pending approvals,而不再为这些后台摘要去扫描完整持久化 request catalog。Issue #57
0.0.257
- 无过滤 request 列表读取现在走轻量 SQLite 摘要路径: SQLite catalog 现在会额外建立最近活动索引,扫描完整 catalog 时不再为历史非活跃 request 反序列化
runtime_snapshot_json。活跃 request 仍会继续为 operator / governance 视图暴露实时 runtime snapshot,但带持久化桌面 profile 的启动 request 列表路径不再被所有已完成 request 的 inspection blob 拖慢。Issue #57
0.0.254
- 会话列表读路径不再依赖逐会话标量子查询: SQLite 的 session summary 读取现在通过一次基于窗口函数的消息扫描批量求出首条/末条消息,而不是对每个 session 反复执行相关子查询;同时 runtime schema 会继续保持按最近活动排序的会话读路径走索引。Issue #56
0.0.252
- 递归 YAML 发现现在会跳过 `node_modules`:
readYamlItems(..., { recursive: true })现在会在继续向下遍历前忽略嵌套node_modules/**目录,因此附加资源工具扫描不再钻进resources/tools/node_modules这类 vendored 依赖树。这样可以去掉 runtime inventory 与 session inspection 中无意义的文件系统遍历,同时继续保留工作区自有 YAML catalog 与附加资源工具定义的正常发现能力。Issue #55 - 安全审计现在使用已修补的传递 `axios`: package overrides 现在把
axios固定到^1.15.0,因此mem0ai、ibm-cloud-sdk-core、retry-axios等传递依赖不再因为 NO_PROXY 归一化 SSRF 漏洞阻塞默认分支 CI。
0.0.250
- 面向 request 的 Mermaid 导出现在成为公开 flow 可视化 API: package root 现在以
exportFlow(runtime, { sessionId, requestId })和exportSequence(runtime, { sessionId, requestId })作为产品级 request 检查图导出 helper,调用方不再需要通过公开 API 先构建或传递中间 flow graph 对象,也不需要在产品代码里再显式拼接可视化选项。 - Request trace items 现在成为规范的持久化检查面: 已完成 request 现在会持久化规范化后的 trace items,并通过
listRequestTraceItems(runtime, { sessionId, requestId })对外暴露;公开实时 listener 也统一改成onTraceItem(...),这样运行图与运行后检查都使用同一套产品级 trace 语义,而不再依赖单独的runtimeSurface视图。 - 检查记录不再重复返回派生 `history`: 公开
getRequest(...)、getSession(...)与 session/run 兼容别名现在只返回规范traceItems与runtimeTimeline,不再附带第二份派生history数组,避免 request 检查同时暴露多套可能漂移的运行轨迹投影。 - trace item 持久化现改为 append-only: file 与 SQLite 持久层现在会把 request trace item 追加写到独立存储,而不再在每次 trace 更新时回读并重写整段 request-inspection trace blob。这样
onTraceItem(...)、listRequestTraceItems(...)、exportFlow(...)与exportSequence(...)都继续对齐同一份持久化 trace 来源,同时去掉原先的写放大。 - Runtime surface item 现提供 `action` 与可选结构化 `detail`: 实时 inspection、持久化 request/session inspection、以及 flow graph metadata 里的 runtime surface 现在统一暴露
RuntimeSurfaceItem.action,不再把旧的展示型label当公共合同使用;同时新增可选detail对象,供后续产品面承载 handoff 参与方、原始 upstream step 等结构化上下文。 - runtime-owned surface action 现改为明确动作词,并对 memory 做语义区分: runtime surface 投影现在会稳定输出
apply、call、execute、handoff等动作;当上游语义足够明确时,memory 步骤也会区分recall与memorize。 - sub-agent handoff surface item 现继续使用 `kind: "agent"`,并直接表达 handoff 进度: runtime surface 投影不再新增
delegation类型,而是在agent下用更清晰的 handoff started / completed label 表达调用 sub-agent;同时,当 chat model 收到结束事件时,实时与持久化 inspection 也会补齐对应的llm completed。 - 移除原生 `better-sqlite3` 运行时依赖:
SqliteStore现改走现有@libsql/client路径,不再把原生better-sqlite3随默认安装一起拉进来。SqliteSavercheckpointer 现暂不支持;运行时会直接抛出明确错误,而不是再去加载@langchain/langgraph-checkpoint-sqlite。 - 预工具 git 查找的 runtime PATH 归一化: runtime 启动时现在会先用常见系统目录、Homebrew 目录和版本管理器可执行目录归一化当前进程的
PATH,然后才开始 agent 执行;这样即使 delegated review 流程在任何显式 tool 调用之前就触发上游或依赖内部的spawn("git"),也能正确找到git。同时,function tool subprocess 现在也统一走同一套 runtime env 构造,而不再直接做{ ...process.env, ...env }合并,避免局部 PATH 覆盖把git或其他系统二进制从子进程环境里丢掉。Issue #54
0.0.248
- 实时与持久化检查统一的 runtime surface items: upstream listener item 现在会暴露
surfaceItems,其中包含agent、llm、memory、skill、tool五类对象的稳定id、展示name、label、状态以及所属 agent 元数据。同一套 runtime-owned surface 也会出现在持久化 request inspection 与 flow graph metadata 中,产品侧可以用一个规范 shape 同时渲染实时事件和恢复后的运行记录。
0.0.247
- 持久化 request 交接链路与更丰富的 agent 元数据: 运行时持久化现在会为同一会话中的后续 request 记录
parentRequestId,并把带agentId与可读agentName的 agent 归属 upstream inspection 事件保留下来;这些元数据也会继续透传到 flow graph 和公共 upstream-event item,客户端无需再靠本地启发式推断委托关系或跨-request handoff。Issue #53
0.0.246
- 工作区配置优先于附加工具依赖:
loadWorkspace()现在会在 conventional object discovery 时忽略resources/tools/node_modules/**下的 YAML catalog,因此依赖包内置的 catalog 不会再覆盖工作区自己的model/default等条目。即使附加工具依赖中 vendor 了@botbotgo/agent-harness产物,工作区本地模型选择也会保持稳定。Issue #50 - 终态流式状态持久化与更丰富的持久化 flow 投影: 流式运行现在会先持久化
request.state.changed,再向调用方暴露终态result,因此调用方在收到最终 assistant 输出后立即检查 request 时,不会再看到陈旧的running。同时,持久化 upstream flow 投影会基于 camelCase 和点分隔名称中的语义线索,正确识别SkillsMiddleware.before_agent、MemoryMiddleware.before_agent这类中间件步骤;当持久化 trace 已经包含有意义的 skill / memory 阶段时,产品视图 Mermaid 导出不再塌缩成单个 LLM 节点。Issue #51 - 产品视图 Mermaid 在隐藏执行节点后仍保留连通性:
exportFlowGraphToMermaid(...)现在会在产品视图隐藏中间chain或memory节点时,继续保留可见节点之间的连通关系,因此非空 flow graph 不会再因为原始边恰好穿过被过滤的运行时步骤而渲染成彼此断开的子图。Issue #52
0.0.243
- SQLite 运行时惰性加载: 默认
FileStore与FileCheckpointer启动路径不再在模块顶层导入better-sqlite3或@langchain/langgraph-checkpoint-sqlite。SQLite 驱动仅在真正实例化SqliteStore或SqliteSaver时加载,避免非 SQLite 工作区在 Electron 中因 ABI 不匹配而启动失败。Issue #49
0.0.233
- 治理证据导出:
exportRequestPackage(...)与exportSessionPackage(...)现一并导出治理证据,以及审批、事件、转写、产物与可选运行时健康信息,便于运维工具导出可审计包而无需从持久层内部重建审批/风险上下文。CLI 增加agent-harness runtime export request|session,支持事件响应与评审流程中直接导出 JSON 证据。 - A2A v1.0 对齐:
serveA2aHttp(runtime)发布 A2A v1.0 形态 agent card(supportedInterfaces协议绑定、capabilities.extendedAgentCard),接受 v1.0ROLE_USER文本部分,SendMessage返回{ task }包装,发出TASK_STATE_*状态枚举,ListTasks支持status/pageSize/pageToken;对流式或推送类操作标为不支持,而非暗示桥接实现这些能力。 - A2A 扩展卡发现:
GetExtendedAgentCard返回真实扩展卡(含协议面运行时元数据与子代理清单),外部 A2A 客户端可发现控制面形态。 - A2A 服务参数兼容: HTTP 桥在同一端点同时宣告
1.0与0.3JSON-RPC;用VersionNotSupportedError校验A2A-Version;将A2A-Extensions写入运行时调用元数据。 - A2A 推送通知: 暴露
CreateTaskPushNotificationConfig、GetTaskPushNotificationConfig、ListTaskPushNotificationConfigs、DeleteTaskPushNotificationConfig;宣告capabilities.pushNotifications = true;发送调用可内联推送配置;对配置接收方尽力发送 webhook 任务快照。 - A2A 能力宣告修复: agent card 正确设置
capabilities.streaming = true,客户端可发现 SSE 桥。 - A2A 流式事件形态: v1 SSE 先发送
{ task }负载,再发带final终止提示的{ statusUpdate },与发现、流式、订阅语义一致。
运行时、安全与互操作
- 会话历史摘要: 新增运行时
listSessionSummaries(...),侧栏/历史列表一次拉取摘要而无需对每个 session 调getSession(...)。摘要投影保持listSessions(...)轻量,并暴露entryAgentId、title、snippet、messageCount、hasVisibleMessages、lastMessageRole等稳定字段。Issue #48 - Release Node 版本同步: CI 与发布工作流从仓库根
.node-version读取 Node 主版本,避免重复字面量;回归测试保证 workflow 与package.json.engines.node一致。 - 恢复后的检查记录: 持久化 request/session 恢复为已完成请求保留规范运行时检查证据:存可检查的执行 trace,并与既有冻结
runtimeSnapshot一并通过getRequest/getSession返回runtimeTimeline,重启后无需渲染端自建存储即可恢复运行时页。Issue #47 - 上游依赖对齐: 升级
langchain至1.3.1、deepagents至1.9.0,兼容桥适配上游结构化ls/grep/glob协议,并增加VfsSandboxgrep 与复合后端读/列行为回归。 - 异步子代理透传: Deepagent 工作区可在
spec.subagents用上游AsyncSubAgent字段(graphId、url、headers等)声明远程异步子代理;运行时编译保留并传给上游createDeepAgent(...),不另造 harness 委托层。 - DeepAgents 特性对齐: 声明式中间件将
completionCallback映射到上游createCompletionCallbackMiddleware;内置中间件工具接受后端协议 v2 结构化结果;内联 DeepAgents 后端目录可通过现有后端工厂物化LangSmithSandbox。 - `runtime.sqlite` 错误: 包含数据库文件路径;约束类错误(或
AGENT_HARNESS_RUNTIME_SQLITE_DEBUG=1)附加失败 SQL 便于诊断 (#45)。 - 工具链 / CI: TypeScript 6 共享编译器兼容与
baseUrl弃用回归;推送/PR 上npm run security:ci;高危依赖审查;必要时 overrides 保证生产审计干净。 - 语义与文档测试: DeepAgents 与 LangGraph 边界语义(trace vs 执行图)文档化并附回归测试。
- ACP 互操作验证: 扩大 ACP 传输回归(HTTP/stdio),含参考客户端式 submit/list/get、非法 JSON、无 JSON-RPC 信封的通知调用。
- ACP 参考客户端: 新增
createAcpStdioClient(...),供 IDE/CLI 侧车做 ACP stdio 请求/通知解复用而无需手写 JSON 行解析。
0.0.190
- 新增稳定的运维概览控制面投影,将运行时健康、队列压力、待处理审批、活跃运行与治理风险聚合为单一运行时快照,供面板与运维工具使用。
- 公共 API 增加
getOperatorOverview(runtime, { limit }),CLI 增加agent-harness runtime overview,便于在深入原始 request/session/approval/event 前先读摘要。
0.0.188
- 收紧运行时远程 MCP 准入:
runtime/default.governance.remoteMcp可按信任层级、租户范围、提示注入风险与 OAuth 范围策略拒绝远程工具,而不止于服务器与传输过滤。 - 升级运维 CLI 摘要:
agent-harness runtime health、runtime approvals list|watch、runtime requests list|tail显示检查状态、症状摘要、请求时间戳、当前委派智能体与可恢复性,无需先解析原始 JSON。 - 强化默认工作区运行时配置:默认拒绝不可信、跨租户与高提示注入风险的 MCP 面,同时在 YAML 中保留按传输审批与传输风险元数据。
0.0.187
- 升级
serveA2aHttp(runtime):A2A 桥发布更丰富的 agent-card 元数据,支持tasks/list与tasks/subscribe,兼容SendMessage、GetTask、ListTasks、CancelTask、SubscribeToTask等别名,不改变运行时持有的 session/request 模型。 - 扩展运行时 MCP 治理元数据:MCP 目录与内联配置可声明信任层级、访问模式、租户范围、审批策略、提示注入风险、标签与 OAuth 范围,并投影到治理包供运维与审批推理。
- 新增轻量运维 CLI:
agent-harness runtime health、runtime approvals list|watch、runtime requests list|tail,无需自写 SDK 即可检查持久化健康、审批队列与活跃运行。 - 在
runtime/default.observability.tracing下增加默认可观测性默认值(导出元数据与传播模式),并写入冻结runtimeSnapshot.tracing供下游关联与导出感知工具使用。 - 扩展
serveAgUiHttp(runtime):AG-UI SSE 除运行与文本消息外,投影上游思考、步骤进度与工具调用生命周期事件。 - 将
session与request提升为面向运行时的规范术语;session与run仍作兼容别名。 - 扩展公共 memory 入参:
memorize/recall/listMemories同时接受sessionId/requestId与旧版sessionId/requestId。 - 增加以 request 为先的公开检查别名:
listRequestEvents、exportRequestPackage以request.*事件与sessionId/requestId投影;listRunEvents/exportRunPackage仍兼容。 - 更新
subscribe、run({ listeners })、replayEvaluationBundle、cancelRequest等返回 session/request 形记录,避免泄露旧 session/run 字段名。 - 扩展运行时资源加载:
runtime.spec.resources可挂载多个直接资源目录,不限于嵌套resources/的包根;file:定位符也可指向带独立package.json的资源文件夹。 - 修复资源隔离快照重建:实时轮询不再原地覆盖嵌套 skill/引用树;刷新发布完整新快照并保留旧快照供在途读取。Issue #33
- 修复隔离
tool({...})资源模块:模型侧工具 schema 在绑定时保留query等必填字段,不再退化为空透传 schema。Issue #32 - 修复原始形态工具 schema(如
schema: { query: z.string() })的模型侧绑定,保持必填对象字段。Issue #32 - 扩展严格工具调用恢复:invoke/stream 重试亦处理结构化参数校验失败(如缺失单字段参数),不仅限于畸形 JSON。Issue #32
- 修复本地函数工具重放:单字段 schema 可从畸形标量参数恢复,避免静默以
{}执行导致缺字段失败。Issue #32 - 修复本地
tool({...})函数工具:治理与工具执行策略识别模块定义 schema 为元数据,无需重复 YAMLinputSchema.ref。Issue #31 - 公共
createAcpServer(runtime)JSON-RPC 适配器:会话、请求、审批、产物与运行时事件映射到现有持久化记录,不另造协议状态模型。 - 公共
listArtifacts、getArtifact:协议适配器与运维面可读持久化产物。 - 公共
exportEvaluationBundle:CI/离线评测导出稳定包(会话/请求投影、转写、事件、产物、健康)。 replayEvaluationBundle:对稳定运行时重放评测包,无需私有脚本。- 通过
config.filesystem.sessionStorage提供会话级 LangChain 文件系统连续性(可运行缓存键、会话根路径如{runtimeRoot}/sessions/{sessionId}/filesystem)。 - 冻结
runtimeSnapshot与策略引擎决策扩展治理包:汇总工具审批需求与粗粒度风险,不改变执行语义。 serveAcpStdio+agent-harness acp serve --transport stdio:ACP 客户端可用换行分隔 JSON-RPC stdio。serveAcpHttp+agent-harness acp serve --transport http:HTTP JSON-RPC + SSE 事件。serveA2aHttp+agent-harness a2a serve:外部平台可发现 agent card 并以 A2A 风格 JSON-RPC 提交/轮询/取消任务。serveAgUiHttp+agent-harness ag-ui serve:最小 AG-UI 兼容 HTTP SSE 桥。createRuntimeMcpServer、serveRuntimeMcpOverStdio、agent-harness runtime-mcp serve:运行时检查与审批/导出以 MCP 工具暴露。runtime/default.governance默认治理 YAML:拒绝规则与工具策略覆盖进入治理快照与策略门。- 公共
listRunEvents、exportRunPackage、exportSessionPackage:导出稳定运行/会话证据包。 - 扩展
runtime/default.governance.remoteMcp:按 MCP 服务器拒绝/允许、按传输要求审批、在治理包中呈现传输风险层级。 - ACP 回归:请求提交、会话/请求查询、审批解析、事件通知、产物查询经新服务端适配器。
- 回归:runtime MCP 工具与 CLI 服务、AG-UI HTTP、ACP HTTP、运行/会话包导出、远程 MCP 治理包、策略引擎远程 MCP 拒绝、评测导出打包、会话文件系统、快照治理包、策略聚合等。
- 公共流检查工具
buildFlowGraph、exportFlowGraphToMermaid:将持久化事件与可选上游步骤投影转为图或 Mermaid。 exportFlowGraphToSequenceMermaid:同图亦可导出为时序图。- 流工具尽力从上游
task事件展示委托迁移;流图含委托节点,时序图含委托参与方。 - Mermaid 导出默认产品视图仅保留用户定义 agent/子 agent/模型/工具/skill 路径;
view: "debug"用于重运行时检查。 - 改进委托归属:识别嵌套上游 AI 消息载荷中的子代理名称。
- 稳定公共
listMemories、updateMemory、removeMemory:管理持久记忆而无需导入内部 memory-store。 - 记忆管理操作后重建结构化投影与语义向量索引,与 recall 一致。
- 工作区配置发现:
config/**下 YAML 按对象kind与metadata.name/id递归加载,不再依赖固定文件名如models.yaml。 - 文档推荐的
config/catalogs/*与config/agents/*仅为组织建议;等价的Agent、Models等对象可放在config/任意处。 - 回归:嵌套 YAML 发现、
.yml递归加载、仍拒绝config/外根级 YAML 作为配置源。 - LangMem 风格运行时记忆形成默认:
formation.hotPath与formation.background。 - 运行时记忆管理器:
rules与model策略,候选在进入持久存储前可规范化或拒绝。 - 后台运行时记忆反思:从已完成请求写结构化情景记录,不限于 markdown 摘要。
- 扩展持久记忆组织:
user/project作用域与session/agent/workspace一致重建结构化投影。 - 默认持久存储预设从文件 JSON 切换为
SqliteStore。 - 可选 mem0 增强语义召回,与稳定
MemoryRecord[]合同混合,不改变 SQLite 规范存储。 - 持久记忆召回以向量存储的嵌入优先路径为主,SQLite 结构化记录为规范真值,词法评分为失败回退。
- 运行时托管向量索引:规范写入后自动重建语义召回底床。
mem0与Qdrant仍为可选集成,默认零侧车路径基于SQLite + sqlite vector。- 稳定公共
memorize、recall:应用无需导入runtime/harness/system/*。 - 运行时与示例资源包升级
zod@^4,隔离包内 raw-shape schema 执行一致。 - 回归:声明 zod4 raw-shape 校验器的隔离工具。Issue #29
- 公开记忆合同:
MemoryRecord、MemoryDecision、MemorizeInput、RecallInput;合并、维护与存储布局仍由运行时管理。 - 持久记忆记录
workspaceId、userId、projectId来源,公共 recall 可按稳定作用域过滤。Issue #28 - 首阶段结构化运行时记忆:
MemoryRecord/MemoryDecision对象持久化。 - 结构化记忆规范键索引,支撑后续合并与检索。
- 首阶段记忆决策:候选可
store/refresh/merge/review。 - 轻量记忆合并:标记过期、归档重复活跃记录、从当前结构化状态重建面向提示的投影。
- 记忆检索按相关性、作用域、新鲜度与置信度排序,而非仅旧摘要组装。
normalizeUserChatInput(...):将聊天式用户轮映射到稳定request(..., { input, invocation })。- 明确多模态聊天内容在
input,invocation.attachments为辅助载荷。Issue #27 - 流结果中结构化
syntheticFallback元数据:从流式恢复为invokeWithHistory时可区分恢复与失败。 runtime.synthetic_fallback事件同样携带结构化负载,与最终结果对齐。
0.0.146
- 冻结
runtimeSnapshot增加稳定运行级追踪元数据,下游可用运行时correlationId与外部日志关联。 - 快照追踪字段限于后端中立检查数据(
enabled、correlationId、标签、运行时元数据),不暴露密钥、原始 span 或后端句柄。 - 新运行启动时持久化追踪关联数据。
- 运行时审批默认:敏感持久记忆写入与写类 MCP 工具可在未显式
hitl.enabled时暂停于既有审批面。
0.0.144
- LangMem 对齐的记忆类型归一化:候选知识滚入
semantic/episodic/procedural持久摘要。 - 基于命名空间模板的记忆路由,默认如
memories/sessions/{sessionId}。 - 排序记忆检索:相对当前请求评分,限制提示注入为最相关线程/工作区/智能体记忆。
- 记忆策略测试与公共 API 覆盖分类持久记忆持久化与检索。
0.0.143
- 工具级记忆资格:本地
tool({...})可声明memory.enabled与类型、作用域、标签提示。 - 从工具执行结果提取记忆候选,支持显式
memoryCandidates并写入最终运行元数据。 - 持久化工具衍生候选与线程/工作区/智能体摘要滚动,供后续运行复用。
- 记忆检索注入:后续运行可在规划与执行前自动获得相关持久记忆上下文。
0.0.140
- 运行时
RuntimeMemorySync投影:运行完成与审批解决时自动写持久记忆摘要,而非仅线程状态投影。 - 可配置记忆钩子:
ingestion.writeOnRequestCompletion、writeOnApprovalResolution、backgroundConsolidation、maxMessagesPerRequest。 - 持久运行摘要记录与可选线程摘要滚动;首版记忆生命周期默认具现化实现。
0.0.137
- 稳定运行时检查字段:
currentAgentId、delegationChain、startedAt、endedAt、lastActivityAt等。 - 每运行冻结
runtimeSnapshot,展示该次运行实际模型/工具/skill/记忆配置,而非可变当前清单。 - 流式检查:委托相关上游事件可更新当前智能体与委托链投影,不另造执行协议。
- 该次运行的检查字段边界收敛为运行时所有的稳定投影。Issue #25