@kedge-agentic/harness-core
v0.2.0
Published
Framework-free core of @kedge-agentic/harness. Orchestrator, task registry, output schema registry, exit evaluator, in-memory run store, event stream — plus the HTTP client SDK. Zero NestJS coupling.
Readme
@kedge-agentic/harness-core
框架无关的 harness orchestrator — 给 iterative agent task 用。
类型: 框架无关库 · 状态: public · v0.2.0
用途
Iterative agent task 框架,从原 @kedge-agentic/harness 包迁出。 让 solution 定义一个 HarnessTask (目标 / 分数阈值 / 退出条件),驱动它在多轮里跟 agent backend (ccaas Session, MCP client) 对话,直到退出条件触发。
TaskRegistry— 注册 / 查找HarnessTask定义Orchestrator— 跑 round 循环,调 SessionProvider + McpClient, 评估退出InMemoryRunStore— 本地/dev 用的简单RunStore实现RunEventStream/RunEventStreamRegistry— run progress 事件的 pub/subOutputSchemaRegistry— per-task Zod schema,校验 agent 输出- 工具函数:
assembleContext,extractOutput,shouldExit,pollUntilComplete
零 NestJS 耦合。 NestJS 适配在 @kedge-agentic/harness-nest。
主要导出
import {
TaskRegistry,
Orchestrator,
InMemoryRunStore,
RunEventStream,
RunEventStreamRegistry,
OutputSchemaRegistry,
assembleContext,
extractOutput,
shouldExit,
pollUntilComplete,
// 类型
HarnessTask,
HarnessRun,
RunStore,
RunProgress,
RunFilters,
IterationRecord,
McpClient,
SessionProvider,
SessionResult,
TokenUsage,
HarnessEventEnvelope,
} from '@kedge-agentic/harness-core'用法
const registry = new TaskRegistry()
registry.register({
id: 'doc-optimizer',
prompt: '改进这段文档',
scoreThreshold: 85,
maxRounds: 5,
})
const orchestrator = new Orchestrator({
sessionProvider,
mcpClient,
taskRegistry: registry,
runStore: new InMemoryRunStore(),
})
const run = await orchestrator.startRun({ taskId: 'doc-optimizer', input: '...' })
for await (const evt of new RunEventStream(run.id).subscribe()) {
console.log(evt)
}依赖
- 运行时: 无
- 无 peerDeps,无框架耦合
关联包
- @kedge-agentic/harness-nest — NestJS module + REST + SSE 适配
- HTTP 客户端 subpath:
@kedge-agentic/harness-core/client
构建 / 测试
npm run build:harness-core
npm test -w @kedge-agentic/harness-core