@botbotgo/agent-harness 0.0.149 → 0.0.151
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -12
- package/README.zh.md +26 -11
- package/dist/package-version.d.ts +1 -1
- package/dist/package-version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -33,20 +33,31 @@
|
|
|
33
33
|
>
|
|
34
34
|
</p>
|
|
35
35
|
|
|
36
|
+
## Easy to start · Full runtime · Configure and extend
|
|
37
|
+
|
|
38
|
+
**At a glance:** the onboarding path stays thin, the runtime capabilities ship as a complete layer, and most ongoing work moves into **YAML configuration** plus **extensions** (local tools, SKILL packages, MCP) instead of bespoke runtime infrastructure.
|
|
39
|
+
|
|
40
|
+
- **Easy to start:** `createAgentHarness` → `run` → `stop`, plus inspection helpers such as `subscribe`, `listSessions`, `listApprovals`, and `resolveApproval`.
|
|
41
|
+
- **Configure:** routing, models, tools, stores, backends, MCP, recovery, and maintenance in declarative workspace YAML (see [Quick Start](#quick-start) and [How To Configure](#how-to-configure)).
|
|
42
|
+
- **Extend:** drop `tool({...})` modules and SKILL trees under `resources/`, wire shared tools and MCP in catalogs, and let agents whitelist what they use.
|
|
43
|
+
- **Built into the runtime:** persisted `runs`, `threads`, `approvals`, and `events`; recovery and queueing; streaming listeners; MCP in/out; LangChain v1 and DeepAgents adapters—so you do not rebuild that layer per app.
|
|
44
|
+
|
|
36
45
|
## What Problem We Solve
|
|
37
46
|
|
|
38
|
-
In one line: `agent-harness`
|
|
47
|
+
In one line: `agent-harness` productizes the runtime work that usually appears after the demo.
|
|
39
48
|
|
|
40
|
-
If your team already has agents, prompts, tools, and workflows, the missing layer is usually not more execution.
|
|
49
|
+
If your team already has agents, prompts, tools, and workflows, the missing layer is usually not more execution. The missing layer is the runtime that makes those pieces operable, inspectable, and recoverable in production.
|
|
41
50
|
|
|
42
51
|
What you get on day one:
|
|
43
52
|
|
|
44
53
|
- a runtime that keeps `runs`, `threads`, `approvals`, and `events` as inspectable product records
|
|
45
54
|
- a recovery path that survives interruption, restart, and operator decisions
|
|
55
|
+
- stable run correlation and continuity metadata so operators can join one persisted run to logs, traces, and fallback transitions
|
|
56
|
+
- approval defaults for sensitive durable memory writes and write-like MCP calls instead of relying on each tool definition to remember governance
|
|
46
57
|
- one workspace-shaped assembly model instead of app-specific runtime glue
|
|
47
58
|
- one stable runtime contract even when execution backends change underneath
|
|
48
59
|
|
|
49
|
-
AI makes it much easier to generate agent logic, tool calls, and workflow code. The
|
|
60
|
+
AI makes it much easier to generate agent logic, tool calls, and workflow code. The harder problem shifts to operations.
|
|
50
61
|
|
|
51
62
|
Once the demo works, the real software problem changes shape:
|
|
52
63
|
|
|
@@ -55,7 +66,7 @@ Once the demo works, the real software problem changes shape:
|
|
|
55
66
|
- backend, prompt, and tool changes happen faster, but product-facing behavior still needs one stable control surface
|
|
56
67
|
- MCP and provider-native tooling expand what agents can reach, which raises the bar for governance
|
|
57
68
|
|
|
58
|
-
Teams still need answers to the runtime questions that appear after that shift:
|
|
69
|
+
Teams still need clear answers to the runtime questions that appear after that shift:
|
|
59
70
|
|
|
60
71
|
- how approvals are resolved and audited
|
|
61
72
|
- how runs, threads, and events stay inspectable
|
|
@@ -63,19 +74,21 @@ Teams still need answers to the runtime questions that appear after that shift:
|
|
|
63
74
|
- how routing, concurrency, and maintenance policy stay consistent
|
|
64
75
|
- how backend churn does not leak into the product model
|
|
65
76
|
|
|
66
|
-
`agent-harness` solves that layer. It keeps agent execution upstream while
|
|
77
|
+
`agent-harness` solves that layer. It keeps agent execution upstream while turning the application runtime into something teams can operate, recover, and govern.
|
|
67
78
|
|
|
68
|
-
That
|
|
79
|
+
That makes the product story easier to explain:
|
|
69
80
|
|
|
70
81
|
- you bring the workspace, agents, tools, and prompts
|
|
71
82
|
- `agent-harness` brings persisted `runs`, `threads`, `approvals`, `events`, recovery, and operator visibility
|
|
72
83
|
- your application gets one stable runtime contract instead of backend-specific runtime plumbing
|
|
73
84
|
|
|
74
|
-
|
|
85
|
+
In concrete terms:
|
|
75
86
|
|
|
76
87
|
- a product-facing approval and operator surface instead of backend-specific middleware state
|
|
77
88
|
- persisted `runs`, `threads`, `approvals`, and `events` as stable runtime records
|
|
89
|
+
- runtime-owned inspection fields such as tracing correlation ids and continuity metadata instead of provider-private observability handles
|
|
78
90
|
- restart-safe recovery and continuation as system-managed behavior
|
|
91
|
+
- default runtime governance for high-risk memory and MCP side effects
|
|
79
92
|
- YAML-owned routing, concurrency, maintenance, and recovery policy
|
|
80
93
|
- adapter isolation so backend replacement does not redefine the public runtime model
|
|
81
94
|
|
|
@@ -85,7 +98,7 @@ Concretely, that means:
|
|
|
85
98
|
|
|
86
99
|
It is not a new agent framework. It is the runtime layer around LangChain v1 and DeepAgents that turns one workspace into one operable application runtime.
|
|
87
100
|
|
|
88
|
-
The
|
|
101
|
+
The positioning is simple:
|
|
89
102
|
|
|
90
103
|
- Codex, Claude Code, and Cursor are products for people using agents
|
|
91
104
|
- LangChain v1 and DeepAgents are frameworks for defining agent execution semantics
|
|
@@ -111,15 +124,16 @@ The runtime provides:
|
|
|
111
124
|
- local `resources/tools/` `tool({...})` modules and `resources/skills/` discovery
|
|
112
125
|
- persisted threads, runs, approvals, events, queue state, and recovery metadata
|
|
113
126
|
|
|
114
|
-
In practice, the harness exists for the parts that are
|
|
127
|
+
In practice, the harness exists for the parts that are expensive and repetitive to rebuild inside every agent app:
|
|
115
128
|
|
|
116
129
|
- approval inboxes and human decision flow
|
|
117
130
|
- persisted runs, threads, and inspectable event history
|
|
131
|
+
- run correlation, continuity, and recovery inspection that still works after a stream fallback or restart
|
|
118
132
|
- runtime-managed recovery after interrupts, failures, or process restart
|
|
119
133
|
- queueing, concurrency, maintenance, and operational policy
|
|
120
134
|
- stable runtime records that stay usable even if the backend changes
|
|
121
135
|
|
|
122
|
-
The repository-owned default config layer is intentionally full-shaped. The shipped YAML keeps explicit defaults for the important runtime and agent knobs so teams can start from concrete
|
|
136
|
+
The repository-owned default config layer is intentionally full-shaped. The shipped YAML keeps explicit defaults for the important runtime and agent knobs so teams can start from concrete configuration instead of reverse-engineering adapter behavior from source.
|
|
123
137
|
|
|
124
138
|
The default rule is:
|
|
125
139
|
|
|
@@ -157,7 +171,7 @@ Recommended orchestration shape for long-running flows:
|
|
|
157
171
|
|
|
158
172
|
## Why This Exists
|
|
159
173
|
|
|
160
|
-
Most agent tooling stops at execution.
|
|
174
|
+
Most agent tooling stops at execution. Production software does not.
|
|
161
175
|
|
|
162
176
|
Real products need a runtime that can answer harder questions:
|
|
163
177
|
|
|
@@ -173,8 +187,9 @@ Real products need a runtime that can answer harder questions:
|
|
|
173
187
|
|
|
174
188
|
- It treats `runs`, `threads`, `approvals`, `events`, and recovery as first-class product records
|
|
175
189
|
- It gives operators a runtime control surface instead of exposing raw backend internals
|
|
190
|
+
- It keeps observability and governance runtime-owned with trace correlation, continuity metadata, and approval defaults for sensitive side effects
|
|
176
191
|
- It keeps checkpoint resume system-managed instead of promoting checkpoint internals into the primary API
|
|
177
|
-
- It lets YAML own assembly and operating policy while code keeps a
|
|
192
|
+
- It lets YAML own assembly and operating policy while code keeps a small, stable surface
|
|
178
193
|
- It goes deep on runtime concerns that upstream libraries do not fully productize
|
|
179
194
|
|
|
180
195
|
## When To Use It
|
package/README.zh.md
CHANGED
|
@@ -33,20 +33,31 @@
|
|
|
33
33
|
>
|
|
34
34
|
</p>
|
|
35
35
|
|
|
36
|
+
## 容易上手 · 能力齐全 · 配置与扩展
|
|
37
|
+
|
|
38
|
+
**一句话:** 接入面保持很薄,运行时能力整层交付,日常主要工作集中在 **YAML 配置** 与 **扩展**(本地工具、SKILL 包、MCP),而不是反复自建运行时基础设施。
|
|
39
|
+
|
|
40
|
+
- **容易上手:** `createAgentHarness` → `run` → `stop`,以及 `subscribe`、`listSessions`、`listApprovals`、`resolveApproval` 等查询与控制能力。
|
|
41
|
+
- **配置:** 路由、模型、工具、存储、后端、MCP、恢复与维护写在声明式工作区 YAML 里(见[快速开始](#快速开始)与[如何配置](#如何配置))。
|
|
42
|
+
- **扩展:** 在 `resources/` 下放置 `tool({...})` 模块与 SKILL 目录,在目录里声明共享工具与 MCP,再由各 agent 按名字白名单启用。
|
|
43
|
+
- **内建运行时:** 持久化 `runs`、`threads`、`approvals` 与 `events`;恢复与排队;流式监听;MCP 接入与对外暴露;LangChain v1 与 DeepAgents 适配——避免每个应用重复造这一层。
|
|
44
|
+
|
|
36
45
|
## 我们解决什么问题
|
|
37
46
|
|
|
38
|
-
一句话概括:`agent-harness`
|
|
47
|
+
一句话概括:`agent-harness` 把通常在 demo 之后才暴露出来的运行时工作,提前做成产品 runtime 的一部分。
|
|
39
48
|
|
|
40
|
-
如果团队已经有 agents、prompts、tools 和 workflows
|
|
49
|
+
如果团队已经有 agents、prompts、tools 和 workflows,真正缺的通常不是再多一层执行,而是把这些能力变成“可运维软件”的运行时层。
|
|
41
50
|
|
|
42
51
|
第一天就能直接拿到的东西:
|
|
43
52
|
|
|
44
53
|
- 把 `runs`、`threads`、`approvals`、`events` 作为可查询产品记录保存下来的 runtime
|
|
45
54
|
- 能跨中断、重启和人工决策继续推进的恢复路径
|
|
55
|
+
- 稳定的 run 关联与连续性元数据,让一次持久化运行能和日志、trace、fallback 过程对齐
|
|
56
|
+
- 对敏感 durable memory 写入和写类 MCP 调用默认走审批,而不是把治理责任留给每个工具定义自己记住
|
|
46
57
|
- 一个工作区形态的装配模型,而不是每个应用各写一套运行时胶水
|
|
47
58
|
- 即使底层 execution backend 变化,也尽量保持稳定的 runtime 契约
|
|
48
59
|
|
|
49
|
-
AI 让 agent
|
|
60
|
+
AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正更难的是运行时运维。
|
|
50
61
|
|
|
51
62
|
当 demo 跑起来之后,真正的软件问题会换一种形状出现:
|
|
52
63
|
|
|
@@ -55,7 +66,7 @@ AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正变
|
|
|
55
66
|
- backend、prompt 和工具变化更快了,但面向产品的控制面仍然必须稳定
|
|
56
67
|
- MCP 与 provider 原生工具扩展了 agent 的可触达范围,也同步抬高了治理要求
|
|
57
68
|
|
|
58
|
-
|
|
69
|
+
团队仍然要正面回答这些运行时问题:
|
|
59
70
|
|
|
60
71
|
- 审批怎么决策、怎么审计
|
|
61
72
|
- runs、threads、events 怎么稳定可查
|
|
@@ -63,7 +74,7 @@ AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正变
|
|
|
63
74
|
- 路由、并发和维护策略怎么保持一致
|
|
64
75
|
- 后端频繁变化时,怎么不让产品模型跟着漂移
|
|
65
76
|
|
|
66
|
-
`agent-harness` 解决的就是这一层。它把 agent
|
|
77
|
+
`agent-harness` 解决的就是这一层。它把 agent 执行留在上游,同时把应用运行时做成真正可运维、可恢复、可治理的系统。
|
|
67
78
|
|
|
68
79
|
换成更直接的产品语言,就是:
|
|
69
80
|
|
|
@@ -75,7 +86,9 @@ AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正变
|
|
|
75
86
|
|
|
76
87
|
- 面向产品的审批与运维控制面,而不是 backend 专属的中间件状态
|
|
77
88
|
- 稳定持久化的 `runs`、`threads`、`approvals` 与 `events` 记录
|
|
89
|
+
- 由运行时持有的 tracing correlation id 与 continuity metadata,而不是 provider 私有观测句柄
|
|
78
90
|
- 由系统托管的重启恢复与中断续跑
|
|
91
|
+
- 面向高风险 memory / MCP 副作用的默认治理策略
|
|
79
92
|
- 由 YAML 持有的路由、并发、维护与恢复策略
|
|
80
93
|
- 通过适配器隔离 backend 变化,不让公共运行时模型漂移
|
|
81
94
|
|
|
@@ -85,7 +98,7 @@ AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正变
|
|
|
85
98
|
|
|
86
99
|
它不是又一个 agent 框架,而是围绕 LangChain v1 与 DeepAgents 的运行时层:把一个工作区变成一套可运维的应用运行时。
|
|
87
100
|
|
|
88
|
-
|
|
101
|
+
产品定位可以概括为:
|
|
89
102
|
|
|
90
103
|
- Codex、Claude Code、Cursor 是「人用 agent」的产品
|
|
91
104
|
- LangChain v1 与 DeepAgents 是定义 agent 执行语义的框架
|
|
@@ -111,15 +124,16 @@ AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正变
|
|
|
111
124
|
- 本地 `resources/tools/` 中 `tool({...})` 工具模块与 `resources/skills/` 的发现
|
|
112
125
|
- 持久化的线程、运行、审批、事件、队列状态与恢复元数据
|
|
113
126
|
|
|
114
|
-
落到实际系统里,harness 主要解决那些每个 agent
|
|
127
|
+
落到实际系统里,harness 主要解决那些每个 agent 应用都不应该重复造一遍的运行时难题:
|
|
115
128
|
|
|
116
129
|
- 审批收件箱与人工决策流
|
|
117
130
|
- 持久化的 runs、threads 与可查询事件历史
|
|
131
|
+
- 即使发生 stream fallback 或进程重启也还能成立的 run 关联、连续性与恢复观测
|
|
118
132
|
- 中断、失败或进程重启后的运行时托管恢复
|
|
119
133
|
- 队列、并发、维护与运维策略
|
|
120
134
|
- 即使后端变更也保持稳定的运行时记录模型
|
|
121
135
|
|
|
122
|
-
仓库自带的默认配置刻意做成「形状完整」。随仓库提供的 YAML
|
|
136
|
+
仓库自带的默认配置刻意做成「形状完整」。随仓库提供的 YAML 对关键运行时与 agent 开关给出显式默认值,便于从具体配置起步,而不必从源码反推适配器行为。
|
|
123
137
|
|
|
124
138
|
默认原则是:
|
|
125
139
|
|
|
@@ -154,7 +168,7 @@ AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正变
|
|
|
154
168
|
|
|
155
169
|
## 为何需要它
|
|
156
170
|
|
|
157
|
-
多数 agent
|
|
171
|
+
多数 agent 工具停在「能跑」,但生产软件不能只停在这里。
|
|
158
172
|
|
|
159
173
|
真实产品需要能回答更难问题的运行时:
|
|
160
174
|
|
|
@@ -164,14 +178,15 @@ AI 让 agent 逻辑、工具调用和工作流代码更容易生成,真正变
|
|
|
164
178
|
- 如何在不暴露原始后端状态的前提下检查线程与事件?
|
|
165
179
|
- 如何在不大改产品模型的前提下替换后端实现?
|
|
166
180
|
|
|
167
|
-
`agent-harness` 在不把应用 API
|
|
181
|
+
`agent-harness` 在不把应用 API 做成 LangChain v1 / DeepAgents 翻版的前提下,回答这些问题。
|
|
168
182
|
|
|
169
183
|
## 有何不同
|
|
170
184
|
|
|
171
185
|
- 将 `runs`、`threads`、`approvals`、`events` 与恢复视为一等产品记录
|
|
172
186
|
- 给运维侧提供运行时控制面,而不是暴露原始后端内部结构
|
|
187
|
+
- 将可观测性与治理留在运行时:包括 trace correlation、continuity metadata,以及高风险副作用的默认审批
|
|
173
188
|
- 将 checkpoint 恢复作为系统管理的行为,而不是把 checkpoint 细节抬成主 API
|
|
174
|
-
- 复杂装配与运行策略交给 YAML
|
|
189
|
+
- 复杂装配与运行策略交给 YAML,代码面保持小而稳
|
|
175
190
|
- 在上游库未充分产品化的运行时问题上做深做透
|
|
176
191
|
|
|
177
192
|
## 什么时候该用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const AGENT_HARNESS_VERSION = "0.0.
|
|
1
|
+
export declare const AGENT_HARNESS_VERSION = "0.0.150";
|
package/dist/package-version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const AGENT_HARNESS_VERSION = "0.0.
|
|
1
|
+
export const AGENT_HARNESS_VERSION = "0.0.150";
|