开发中(尚未发布)

开发中

这里记录下一次发布前的暂存变更;正式发布后,请把相关条目迁入对应版本号下。

  • 移除了剩余公开旧兼容别名,统一改为 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.applicationRootspec.dataRootspec.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.sqliteknowledge/vectors.sqliteruntime/checkpoints.sqlite 这类路径,把共享 application 资产和 profile 专属运行时状态明确拆开。

0.0.275

  • durable memory 现在可作为可嵌入的 knowledge module 使用: 包根目录现在导出 createKnowledgeModule(...)readKnowledgeRuntimeConfig(...) 与共享的 KnowledgeRuntimeContext contract,下游应用因此可以在 AgentHarnessRuntime 之外复用同一套 durable memorize/recall 生命周期,而不必再导入私有的 runtime/harness/system/* 内部模块。独立模块继续把 merge/review、projection 与 reindex 维持在 runtime-governed 语义内,同时对外保持稳定的 MemoryRecord surface,而不是暴露 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 现在会把它识别为可修复的兼容性问题,自动追加一条精确的重试指令,明确要求模型重发包含 contentstatus 的完整 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-RPC GetAgentCard 别名,让混合 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(...) 现在会继续向外透传流式 contentcontent-blockstool-result,不再只剩生命周期 / upstream / result 记录;同时成功路径上的文本 chunk 到达时也会立即持久化并发出 output.delta runtime 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/*.mjsexport const webSearch = tool({ ... }) 这样的导出,仍然可以被 YAML tool bundle/toolset 通过 webSearch 正常引用,而不必在模块定义里再重复写一次 name: webSearchIssue #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,因此 mem0aiibm-cloud-sdk-coreretry-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 兼容别名现在只返回规范 traceItemsruntimeTimeline,不再附带第二份派生 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 投影现在会稳定输出 applycallexecutehandoff 等动作;当上游语义足够明确时,memory 步骤也会区分 recallmemorize
  • 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 随默认安装一起拉进来。SqliteSaver checkpointer 现暂不支持;运行时会直接抛出明确错误,而不是再去加载 @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,其中包含 agentllmmemoryskilltool 五类对象的稳定 id、展示 namelabel、状态以及所属 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_agentMemoryMiddleware.before_agent 这类中间件步骤;当持久化 trace 已经包含有意义的 skill / memory 阶段时,产品视图 Mermaid 导出不再塌缩成单个 LLM 节点。Issue #51
  • 产品视图 Mermaid 在隐藏执行节点后仍保留连通性: exportFlowGraphToMermaid(...) 现在会在产品视图隐藏中间 chainmemory 节点时,继续保留可见节点之间的连通关系,因此非空 flow graph 不会再因为原始边恰好穿过被过滤的运行时步骤而渲染成彼此断开的子图。Issue #52

0.0.243

  • SQLite 运行时惰性加载: 默认 FileStoreFileCheckpointer 启动路径不再在模块顶层导入 better-sqlite3@langchain/langgraph-checkpoint-sqlite。SQLite 驱动仅在真正实例化 SqliteStoreSqliteSaver 时加载,避免非 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.0 ROLE_USER 文本部分,SendMessage 返回 { task } 包装,发出 TASK_STATE_* 状态枚举,ListTasks 支持 status / pageSize / pageToken;对流式或推送类操作标为不支持,而非暗示桥接实现这些能力。
  • A2A 扩展卡发现: GetExtendedAgentCard 返回真实扩展卡(含协议面运行时元数据与子代理清单),外部 A2A 客户端可发现控制面形态。
  • A2A 服务参数兼容: HTTP 桥在同一端点同时宣告 1.00.3 JSON-RPC;用 VersionNotSupportedError 校验 A2A-Version;将 A2A-Extensions 写入运行时调用元数据。
  • A2A 推送通知: 暴露 CreateTaskPushNotificationConfigGetTaskPushNotificationConfigListTaskPushNotificationConfigsDeleteTaskPushNotificationConfig;宣告 capabilities.pushNotifications = true;发送调用可内联推送配置;对配置接收方尽力发送 webhook 任务快照。
  • A2A 能力宣告修复: agent card 正确设置 capabilities.streaming = true,客户端可发现 SSE 桥。
  • A2A 流式事件形态: v1 SSE 先发送 { task } 负载,再发带 final 终止提示的 { statusUpdate },与发现、流式、订阅语义一致。

运行时、安全与互操作

  • 会话历史摘要: 新增运行时 listSessionSummaries(...),侧栏/历史列表一次拉取摘要而无需对每个 session 调 getSession(...)。摘要投影保持 listSessions(...) 轻量,并暴露 entryAgentIdtitlesnippetmessageCounthasVisibleMessageslastMessageRole 等稳定字段。Issue #48
  • Release Node 版本同步: CI 与发布工作流从仓库根 .node-version 读取 Node 主版本,避免重复字面量;回归测试保证 workflow 与 package.json.engines.node 一致。
  • 恢复后的检查记录: 持久化 request/session 恢复为已完成请求保留规范运行时检查证据:存可检查的执行 trace,并与既有冻结 runtimeSnapshot 一并通过 getRequest/getSession 返回 runtimeTimeline,重启后无需渲染端自建存储即可恢复运行时页。Issue #47
  • 上游依赖对齐: 升级 langchain1.3.1deepagents1.9.0,兼容桥适配上游结构化 ls/grep/glob 协议,并增加 VfsSandbox grep 与复合后端读/列行为回归。
  • 异步子代理透传: Deepagent 工作区可在 spec.subagents 用上游 AsyncSubAgent 字段(graphIdurlheaders 等)声明远程异步子代理;运行时编译保留并传给上游 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 healthruntime approvals list|watchruntime requests list|tail 显示检查状态、症状摘要、请求时间戳、当前委派智能体与可恢复性,无需先解析原始 JSON。
  • 强化默认工作区运行时配置:默认拒绝不可信、跨租户与高提示注入风险的 MCP 面,同时在 YAML 中保留按传输审批与传输风险元数据。

0.0.187

  • 升级 serveA2aHttp(runtime):A2A 桥发布更丰富的 agent-card 元数据,支持 tasks/listtasks/subscribe,兼容 SendMessageGetTaskListTasksCancelTaskSubscribeToTask 等别名,不改变运行时持有的 session/request 模型。
  • 扩展运行时 MCP 治理元数据:MCP 目录与内联配置可声明信任层级、访问模式、租户范围、审批策略、提示注入风险、标签与 OAuth 范围,并投影到治理包供运维与审批推理。
  • 新增轻量运维 CLI:agent-harness runtime healthruntime approvals list|watchruntime requests list|tail,无需自写 SDK 即可检查持久化健康、审批队列与活跃运行。
  • runtime/default.observability.tracing 下增加默认可观测性默认值(导出元数据与传播模式),并写入冻结 runtimeSnapshot.tracing 供下游关联与导出感知工具使用。
  • 扩展 serveAgUiHttp(runtime):AG-UI SSE 除运行与文本消息外,投影上游思考、步骤进度与工具调用生命周期事件。
  • sessionrequest 提升为面向运行时的规范术语;sessionrun 仍作兼容别名。
  • 扩展公共 memory 入参:memorize/recall/listMemories 同时接受 sessionId/requestId 与旧版 sessionId/requestId
  • 增加以 request 为先的公开检查别名:listRequestEventsexportRequestPackagerequest.* 事件与 sessionId/requestId 投影;listRunEvents/exportRunPackage 仍兼容。
  • 更新 subscriberun({ listeners })replayEvaluationBundlecancelRequest 等返回 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 为元数据,无需重复 YAML inputSchema.refIssue #31
  • 公共 createAcpServer(runtime) JSON-RPC 适配器:会话、请求、审批、产物与运行时事件映射到现有持久化记录,不另造协议状态模型。
  • 公共 listArtifactsgetArtifact:协议适配器与运维面可读持久化产物。
  • 公共 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 桥。
  • createRuntimeMcpServerserveRuntimeMcpOverStdioagent-harness runtime-mcp serve:运行时检查与审批/导出以 MCP 工具暴露。
  • runtime/default.governance 默认治理 YAML:拒绝规则与工具策略覆盖进入治理快照与策略门。
  • 公共 listRunEventsexportRunPackageexportSessionPackage:导出稳定运行/会话证据包。
  • 扩展 runtime/default.governance.remoteMcp:按 MCP 服务器拒绝/允许、按传输要求审批、在治理包中呈现传输风险层级。
  • ACP 回归:请求提交、会话/请求查询、审批解析、事件通知、产物查询经新服务端适配器。
  • 回归:runtime MCP 工具与 CLI 服务、AG-UI HTTP、ACP HTTP、运行/会话包导出、远程 MCP 治理包、策略引擎远程 MCP 拒绝、评测导出打包、会话文件系统、快照治理包、策略聚合等。
  • 公共流检查工具 buildFlowGraphexportFlowGraphToMermaid:将持久化事件与可选上游步骤投影转为图或 Mermaid。
  • exportFlowGraphToSequenceMermaid:同图亦可导出为时序图。
  • 流工具尽力从上游 task 事件展示委托迁移;流图含委托节点,时序图含委托参与方。
  • Mermaid 导出默认产品视图仅保留用户定义 agent/子 agent/模型/工具/skill 路径;view: "debug" 用于重运行时检查。
  • 改进委托归属:识别嵌套上游 AI 消息载荷中的子代理名称。
  • 稳定公共 listMemoriesupdateMemoryremoveMemory:管理持久记忆而无需导入内部 memory-store。
  • 记忆管理操作后重建结构化投影与语义向量索引,与 recall 一致。
  • 工作区配置发现:config/** 下 YAML 按对象 kindmetadata.name/id 递归加载,不再依赖固定文件名如 models.yaml
  • 文档推荐的 config/catalogs/*config/agents/* 仅为组织建议;等价的 AgentModels 等对象可放在 config/ 任意处。
  • 回归:嵌套 YAML 发现、.yml 递归加载、仍拒绝 config/ 外根级 YAML 作为配置源。
  • LangMem 风格运行时记忆形成默认:formation.hotPathformation.background
  • 运行时记忆管理器:rulesmodel 策略,候选在进入持久存储前可规范化或拒绝。
  • 后台运行时记忆反思:从已完成请求写结构化情景记录,不限于 markdown 摘要。
  • 扩展持久记忆组织:user/project 作用域与 session/agent/workspace 一致重建结构化投影。
  • 默认持久存储预设从文件 JSON 切换为 SqliteStore
  • 可选 mem0 增强语义召回,与稳定 MemoryRecord[] 合同混合,不改变 SQLite 规范存储。
  • 持久记忆召回以向量存储的嵌入优先路径为主,SQLite 结构化记录为规范真值,词法评分为失败回退。
  • 运行时托管向量索引:规范写入后自动重建语义召回底床。
  • mem0Qdrant 仍为可选集成,默认零侧车路径基于 SQLite + sqlite vector
  • 稳定公共 memorizerecall:应用无需导入 runtime/harness/system/*
  • 运行时与示例资源包升级 zod@^4,隔离包内 raw-shape schema 执行一致。
  • 回归:声明 zod4 raw-shape 校验器的隔离工具。Issue #29
  • 公开记忆合同:MemoryRecordMemoryDecisionMemorizeInputRecallInput;合并、维护与存储布局仍由运行时管理。
  • 持久记忆记录 workspaceIduserIdprojectId 来源,公共 recall 可按稳定作用域过滤。Issue #28
  • 首阶段结构化运行时记忆:MemoryRecord/MemoryDecision 对象持久化。
  • 结构化记忆规范键索引,支撑后续合并与检索。
  • 首阶段记忆决策:候选可 store/refresh/merge/review
  • 轻量记忆合并:标记过期、归档重复活跃记录、从当前结构化状态重建面向提示的投影。
  • 记忆检索按相关性、作用域、新鲜度与置信度排序,而非仅旧摘要组装。
  • normalizeUserChatInput(...):将聊天式用户轮映射到稳定 request(..., { input, invocation })
  • 明确多模态聊天内容在 inputinvocation.attachments 为辅助载荷。Issue #27
  • 流结果中结构化 syntheticFallback 元数据:从流式恢复为 invokeWithHistory 时可区分恢复与失败。
  • runtime.synthetic_fallback 事件同样携带结构化负载,与最终结果对齐。

0.0.146

  • 冻结 runtimeSnapshot 增加稳定运行级追踪元数据,下游可用运行时 correlationId 与外部日志关联。
  • 快照追踪字段限于后端中立检查数据(enabledcorrelationId、标签、运行时元数据),不暴露密钥、原始 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.writeOnRequestCompletionwriteOnApprovalResolutionbackgroundConsolidationmaxMessagesPerRequest
  • 持久运行摘要记录与可选线程摘要滚动;首版记忆生命周期默认具现化实现。

0.0.137

  • 稳定运行时检查字段:currentAgentIddelegationChainstartedAtendedAtlastActivityAt 等。
  • 每运行冻结 runtimeSnapshot,展示该次运行实际模型/工具/skill/记忆配置,而非可变当前清单。
  • 流式检查:委托相关上游事件可更新当前智能体与委托链投影,不另造执行协议。
  • 该次运行的检查字段边界收敛为运行时所有的稳定投影。Issue #25