diff --git a/README.md b/README.md index 682e7fc..c5a1347 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,22 @@ -
- -

+

- Open Multi-Agent + -

- -
- -

Open Multi-Agent

+
Open Multi-Agent +

Describe the goal, not the graph.
- Multi-agent orchestration that runs in your own environment. + A self-organizing team of agents that runs in your environment, pauses for approval on consequential actions, and leaves a verifiable record of every run.

npm version + Node.js version CI + Supply chain audit codecov MIT License

@@ -127,11 +124,11 @@ Set `OPENAI_API_KEY` to run this example. [Providers](docs/providers.md) covers OMA combines dynamic orchestration with the control, evidence, and recovery paths needed to move multi-agent systems from prototype to production. - **Dynamic orchestration.** Describe the goal and let the coordinator build the task DAG, assign work, and synthesize the result at runtime. There is no hand-wired graph to maintain. -- **Controlled execution.** Preview, approve, or durably suspend plans, task dispatches, and tool calls; freeze approved plans for replay. Declare required roles and order when topology cannot drift, and verify outputs with multi-agent consensus. +- **Controlled execution.** Preview, approve, or durably suspend plans, task dispatches, and tool calls; the framework ships the approval API and durable records, and the review surface and transport are yours to build. Freeze approved plans for replay. Declare required roles and order when topology cannot drift, and verify outputs with multi-agent consensus. - **Reliability.** Resume interrupted runs from checkpoints, or opt into append-only plan repair at task outcome barriers. Retries, timeouts, loop detection, and token and cost budgets keep execution bounded. -- **Observability and evaluation.** Follow each run through stable identity, execution receipts, and traces. Replay the task DAG and span waterfall in the offline Run Viewer, or export through the optional OpenTelemetry adapter. The same records feed versioned EvalSets, offline reports, CI gates, and production sampling. +- **Observability and evaluation.** Follow each run through stable identity, execution receipts, and traces; the record is verifiable for order and lineage, not tamper-evident. Replay the task DAG and span waterfall in the offline Run Viewer, or export through the optional OpenTelemetry adapter. The same records feed versioned EvalSets, offline reports, CI gates, and production sampling. - **Safety and privacy.** Tools are default-deny, individual calls are gated, and explicit privacy controls apply to telemetry and persisted state. -- **Open runtime.** Process and ACP backends put Claude Code, Gemini CLI, and Codex on the same task DAG, shared memory, and budgets as LLM agents. Mix cloud and local models, natively integrated Chinese providers, OpenAI-compatible endpoints, and AI SDK providers, with a fallback parser for local models that emit tool calls as text. Run on your own infrastructure and credentials, locally, offline, or air-gapped. +- **Open runtime.** Process and ACP backends put Claude Code, Gemini CLI, and Codex on the same task DAG, shared memory, and budgets as LLM agents, though those backends run outside the per-call tool gate, filesystem sandbox, and LLM egress policy. Mix cloud and local models, natively integrated Chinese providers, OpenAI-compatible endpoints, and AI SDK providers, with a fallback parser for local models that emit tool calls as text. Run on your own infrastructure and credentials, locally, offline, or air-gapped; see [Self-hosting and data residency](docs/self-hosting.md). ## Built with OMA diff --git a/README_zh.md b/README_zh.md index 496cd93..a3e7465 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,25 +1,22 @@ -
- -

+

- Open Multi-Agent + -

- -
- -

Open Multi-Agent

+
Open Multi-Agent +

只描述目标,不画任务图。
- 运行在你自己环境中的多智能体编排。 + 多智能体自主分工协作,在自有环境中运行:关键操作经审批放行,每次运行留有可核验记录。

npm version + Node.js version CI + Supply chain audit codecov MIT License

@@ -126,11 +123,11 @@ console.log(result.totalTokenUsage) OMA 将动态编排与生产所需的控制、证据和恢复能力结合起来,帮助多智能体系统从原型走向生产环境。 - **动态编排。** 只需描述目标,Coordinator 就会在运行时生成任务 DAG、分配工作并合成结果,无需手工维护工作流图。 -- **受控执行。** 可预览、审批或持久化挂起计划、任务派发与工具调用,并固化已审批计划以供重放;当拓扑不容漂移时可声明必需的角色与执行顺序,并通过多 Agent 共识验证结果。 +- **受控执行。** 可预览、审批或持久化挂起计划、任务派发与工具调用,并固化已审批计划以供重放;框架提供审批 API 与持久化审批记录,审批界面与传递通道由接入方自行实现。当拓扑不容漂移时可声明必需的角色与执行顺序,并通过多 Agent 共识验证结果。 - **可靠性。** 通过 Checkpoint 从断点恢复中断的运行,或选择在任务结果屏障处启用仅追加式计划修复;重试、超时、循环检测与 token、成本双预算让执行始终有明确边界。 -- **可观测与评测。** 通过稳定的运行标识、执行回执与 Trace 跟踪每次运行,在离线 Run Viewer 中回放任务 DAG 与 span 瀑布,或通过可选的 OpenTelemetry 适配器导出;同一套运行记录可直接支撑版本化 EvalSet、离线报告、CI gate 与线上采样。 +- **可观测与评测。** 通过稳定的运行标识、执行回执与 Trace 跟踪每次运行,在离线 Run Viewer 中回放任务 DAG 与 span 瀑布,或通过可选的 OpenTelemetry 适配器导出;同一套运行记录可直接支撑版本化 EvalSet、离线报告、CI gate 与线上采样。这套记录可核验执行顺序与血缘,但不提供防篡改保证。 - **安全与隐私。** 内置工具默认拒绝,支持逐次调用 gate,并对遥测与持久化状态应用显式的隐私控制。 -- **开放运行时。** Process 与 ACP backend 让 Claude Code、Gemini CLI、Codex 和 LLM Agent 同处一个任务 DAG,并共享记忆与预算;可混用云端模型、本地开源模型、原生接入的国产模型、OpenAI 兼容端点与 AI SDK provider,并通过容错解析支持以文本形式返回工具调用的本地模型;支持使用自有基础设施与凭证,本地、离线或气隙部署。 +- **开放运行时。** Process 与 ACP backend 让 Claude Code、Gemini CLI、Codex 和 LLM Agent 同处一个任务 DAG,并共享记忆与预算,但这类外部 backend 不在逐次工具 gate、文件沙箱与 LLM 出网策略的覆盖范围内;可混用云端模型、本地开源模型、原生接入的国产模型、OpenAI 兼容端点与 AI SDK provider,并通过容错解析支持以文本形式返回工具调用的本地模型;支持使用自有基础设施与凭证,本地、离线或气隙部署,详见[自托管与数据驻留](docs/self-hosting.md)。 ## 基于 OMA 构建 diff --git a/packages/core/README.md b/packages/core/README.md index d953557..c9c898f 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -1,25 +1,22 @@ -
- -

+

- Open Multi-Agent + -

- -
- -

Open Multi-Agent

+
Open Multi-Agent +

Describe the goal, not the graph.
- Multi-agent orchestration that runs in your own environment. + A self-organizing team of agents that runs in your environment, pauses for approval on consequential actions, and leaves a verifiable record of every run.

npm version + Node.js version CI + Supply chain audit MIT License codecov

@@ -171,7 +168,7 @@ Agents may declare `description`, `capabilities`, `costTier`, and `latencyClass` | **Evaluation** | Version EvalSets, run reference scorers, gate CI with offline reports, persist results, or sample production runs on a best-effort path. | | **Memory and recovery** | Shared memory is pluggable; checkpoints resume interrupted runs without repeating completed tasks. | | **Observability** | Stable run identity, traces, execution receipts, redaction, TraceStore, and the offline DAG/Waterfall Viewer are available without a hosted service. | -| **External agents** | ACP and process backends let coding CLIs participate while OMA keeps scheduling, memory, and budgets. | +| **External agents** | ACP and process backends let coding CLIs participate while OMA keeps scheduling, memory, and budgets; the per-call tool gate, filesystem sandbox, and LLM egress policy do not cover them. | ## Architecture @@ -222,7 +219,7 @@ Change `provider`, `model`, and credentials; the agent shape stays the same. Optional integrations load only when used: core directly installs only `@anthropic-ai/sdk`, `openai`, and `zod`; other SDKs are lazy-loading opt-in peers, and OpenTelemetry lives entirely in `@open-multi-agent/otel`. Dependency changes are weighed on demonstrated value plus security, size, maintenance, and compatibility cost, not a fixed count. -See [Providers](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/providers.md), [framework-owned LLM egress policy](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/egress-policy.md), and [Tool configuration](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/tool-configuration.md) for credentials, models, the AI SDK bridge, reasoning settings, MCP, local endpoints, and the exact network-enforcement boundary. +See [Providers](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/providers.md), [framework-owned LLM egress policy](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/egress-policy.md), [Self-hosting and data residency](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/self-hosting.md), and [Tool configuration](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/tool-configuration.md) for credentials, models, the AI SDK bridge, reasoning settings, MCP, local endpoints, self-hosted deployment, and the exact network-enforcement boundary. **Provider sponsors** @@ -238,7 +235,7 @@ Paid sponsors supporting `open-multi-agent`. Sponsorship does not affect technic | Control spend | `maxTokenBudget`; `maxCostBudget` + application-owned `estimateCost` | | Limit tools | `tools` / `toolPreset`, `cwd` / `defaultCwd`, tool-output caps | | Recover | Task retries, checkpointing, `restore()`, and opt-in adaptive plan repair | -| Review work | `planOnly`, inline approval callbacks, or [durable approval gates](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/durable-approvals.md) | +| Review work | `planOnly`, inline approval callbacks, or [durable approval gates](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/durable-approvals.md); your application owns the approval surface and transport | | Observe | Trace sinks, TraceStore, execution receipts, Run Viewer, or the optional OTel adapter | Budget checks run at turn and task boundaries, so a run can overshoot by up to one model turn; they are not a cent-exact stop. `estimateCost` receives each call's token usage plus the agent, effective `model`, `provider`, phase, and `taskId`, and your application owns the price table. @@ -265,7 +262,7 @@ See the [observability guide](https://github.com/open-multi-agent/open-multi-age ### Run journal -When a long run goes wrong, the record usually missing is what each agent actually saw at the moment it was asked. The opt-in run journal keeps it: every message and tool result as an appended event, plus the exact block a context strategy put in place of the turns it dropped, so a finished run can be read back instead of reconstructed by guesswork. `verifyRun()` then checks offline that every block the model saw is reproducible from the log rather than trusting the log's own account of itself, and `restore()` can resume from the last appended event instead of the last snapshot. It is off by default, costs nothing when off, and is documented in the [run journal guide](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/run-journal.md). +When a long run goes wrong, the record usually missing is what each agent actually saw at the moment it was asked. The opt-in run journal keeps it: every message and tool result as an appended event, plus the exact block a context strategy put in place of the turns it dropped, so a finished run can be read back instead of reconstructed by guesswork. `verifyRun()` then checks offline that every block the model saw is reproducible from the log rather than trusting the log's own account of itself, which establishes order and lineage rather than tamper-evidence, and `restore()` can resume from the last appended event instead of the last snapshot. It is off by default, costs nothing when off, and is documented in the [run journal guide](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/run-journal.md). ## Documentation diff --git a/packages/core/README_zh.md b/packages/core/README_zh.md index df90e1c..7ca6655 100644 --- a/packages/core/README_zh.md +++ b/packages/core/README_zh.md @@ -1,25 +1,22 @@ -
- -

+

- Open Multi-Agent + -

- -
- -

Open Multi-Agent

+
Open Multi-Agent +

只描述目标,不画任务图。
- 运行在你自己环境中的多智能体编排。 + 多智能体自主分工协作,在自有环境中运行:关键操作经审批放行,每次运行留有可核验记录。

npm version + Node.js version CI + Supply chain audit MIT License codecov

@@ -166,7 +163,7 @@ Agent 可声明 `description`、`capabilities`、`costTier` 与 `latencyClass` | **评测** | 对 EvalSet 做版本管理,运行参考 scorer,用离线报告把关 CI,持久化结果,或尽力而为地抽样生产运行。 | | **记忆与恢复** | 共享记忆可插拔;checkpoint 可在不重复已完成任务的前提下恢复运行。 | | **可观测性** | 无需托管服务即可使用稳定运行标识、trace、执行回执、脱敏、TraceStore 和离线 DAG/Waterfall Viewer。 | -| **外部 Agent** | ACP 和进程后端让编码 CLI 加入团队,OMA 继续管理调度、记忆和预算。 | +| **外部 Agent** | ACP 和进程后端让编码 CLI 加入团队,OMA 继续管理调度、记忆和预算;逐次工具 gate、文件沙箱与 LLM 出网策略不覆盖这类外部后端。 | ## 架构 @@ -217,7 +214,7 @@ Coordinator -> 任务 DAG -> Scheduler -> AgentPool 可选集成只在使用时加载:core 直接安装的只有 `@anthropic-ai/sdk`、`openai` 和 `zod`,其余 SDK 都是按需懒加载的可选 peer,OpenTelemetry 完全归属 `@open-multi-agent/otel`。依赖变更按实际价值与安全、体积、维护、兼容成本权衡,不设固定数量上限。 -凭证、模型、AI SDK 桥接、推理设置、MCP、本地端点配置,以及出网管控的确切生效边界,见 [Provider](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/providers.md)、[框架级 LLM 出网策略](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/egress-policy.md)和[工具配置](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/tool-configuration.md)。 +凭证、模型、AI SDK 桥接、推理设置、MCP、本地端点配置、自托管部署,以及出网管控的确切生效边界,见 [Provider](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/providers.md)、[框架级 LLM 出网策略](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/egress-policy.md)、[自托管与数据驻留](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/self-hosting.md)和[工具配置](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/tool-configuration.md)。 **Provider 赞助商** @@ -233,7 +230,7 @@ Coordinator -> 任务 DAG -> Scheduler -> AgentPool | 控制成本 | `maxTokenBudget`;`maxCostBudget` + 应用自有 `estimateCost` | | 限制工具 | `tools` / `toolPreset`、`cwd` / `defaultCwd`、工具输出上限 | | 故障恢复 | 任务重试、checkpoint、`restore()` 与可选的自适应计划修复 | -| 人工把关 | `planOnly`、同步审批回调或[持久化审批 gate](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/durable-approvals.md) | +| 人工把关 | `planOnly`、同步审批回调或[持久化审批 gate](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/durable-approvals.md);审批界面与传递通道由应用自行实现 | | 统一观测 | Trace sink、TraceStore、执行回执、Run Viewer,或可选 OTel adapter | 预算检查发生在 turn 和任务边界,因此单次运行最多可能超出一个模型 turn,不是分厘精确的截停。`estimateCost` 收到每次调用的 token 用量,以及 agent、生效的 `model`、`provider`、阶段和 `taskId`;价格表由应用自己维护。 @@ -250,7 +247,7 @@ Core 已提供运行标识、trace sink、执行回执、可查询的内存/文 ### 运行事件日志 -长时间运行出问题时,最缺的记录往往是每个 Agent 在被调用那一刻究竟看到了什么。可选的运行事件日志会把这部分保留下来:每条消息和工具结果都作为追加事件写入,上下文策略替换掉若干轮次后放进去的那个块也原样保存,运行结束后可以直接读回,而不必靠推测还原。`verifyRun()` 随后离线校验模型看到的每个块都能从日志中复现,而不是采信日志对自身的陈述;`restore()` 也可以从最后一条追加事件恢复,而不再局限于最后一次快照。该能力默认关闭,关闭时没有额外开销,详见[运行事件日志指南](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/run-journal.md)。 +长时间运行出问题时,最缺的记录往往是每个 Agent 在被调用那一刻究竟看到了什么。可选的运行事件日志会把这部分保留下来:每条消息和工具结果都作为追加事件写入,上下文策略替换掉若干轮次后放进去的那个块也原样保存,运行结束后可以直接读回,而不必靠推测还原。`verifyRun()` 随后离线校验模型看到的每个块都能从日志中复现,而不是采信日志对自身的陈述,该校验确认的是执行顺序与血缘,并不使日志具备防篡改能力;`restore()` 也可以从最后一条追加事件恢复,而不再局限于最后一次快照。该能力默认关闭,关闭时没有额外开销,详见[运行事件日志指南](https://github.com/open-multi-agent/open-multi-agent/blob/main/docs/run-journal.md)。 ## 文档 diff --git a/packages/core/package.json b/packages/core/package.json index 5e7e53e..9d1aaa0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "@open-multi-agent/core", "version": "1.18.0", - "description": "TypeScript multi-agent framework: one runTeam() call from goal to result. Auto task decomposition and parallel execution for multi-step LLM jobs. Deploys anywhere Node.js runs.", + "description": "TypeScript multi-agent orchestration that runs in your own environment: one call from goal to result, approval gates on consequential actions, and a verifiable record of every run. Built-in provider adapters plus any OpenAI-compatible endpoint, local models included.", "files": [ "dist", "README.md",