
如果你的后端服务是由“新需求就加一个新集成”堆出来的—— observability 一套 SDK、队列一套 client、定时任务一套 scheduler、状态管理一套 store——那你应该看看 iii。
它的目标不是再给你一个更好的消息队列,也不是再做一个新的 Agent 框架,而是把 服务发现、函数调用、触发路由、实时可观测 全部收束到同一个 live system surface 里。用 README 里的原话讲:
iii is the easiest way to compose, extend, and observe every service in your stack in real time.
1. 它解决什么问题
现代后端最常见的结构性债务,是 每一类能力都自带一套集成协议:
| 能力 | 通常带来的集成成本 |
|---|---|
| 队列 | vendor evaluation、client SDK、retry、dead letter |
| 定时任务 | cron config、分布式锁、运行状态查询 |
| HTTP | route、serialization、auth、timeout |
| 状态 | store、schema、migration、cache invalidation |
| 可观测 | tracing、metrics、logs、三套 SDK |
| Agent | harness、tool calling、retry、context |
每加一种能力,就多一套“接入故事”。平台团队累,应用团队也累。
iii 的做法是引入一个 共享运行时,所有能力都以 Worker 的形式接入,统一用 Function + Trigger 描述,统一由 engine 路由、序列化和追踪。
结果是:iii worker add queue 和 iii worker add observability 之后,它就已经在系统里、可追踪、可调用了。
2. 项目画像
| 维度 | 详情 |
|---|---|
| 仓库 | https://github.com/iii-hq/iii |
| 组织 | iii-hq |
| 协议 | engine: Elastic License 2.0;SDK / console / docs / website: Apache 2.0 |
| 核心语言 | Rust(engine)+ TypeScript / Python / Go(SDK) |
| Monorepo | engine / sdk / console / skills / docs / website |
| 包生态 | npm iii-sdk / PyPI iii-sdk / crates.io iii-sdk / Go SDK |
| 官网 | https://iii.dev |
| Worker 市场 | https://workers.iii.dev |
3. 核心架构:三个原语,一套系统
iii 的 mental model 极小,只有三样东西:
Worker
进程级实体,向 iii engine 注册自己。
一个 TypeScript API service 是 worker,一个 Python 数据管道是 worker,一个 Rust microservice 也是 worker。Worker 还能在运行时创建其他 worker,所以 Agent 可以动态扩展系统。
Function
稳定的工作单元,有唯一标识,例如 content::classify、orders::validate。接收输入、执行逻辑、可选返回输出。Function 存在于 Worker 里。
Trigger
任何能让 Function 运行的东西:直接调用、HTTP endpoint、cron schedule、queue subscription、state change、stream event……Trigger 是声明式的:Worker 说“这个 function 在这个事件发生时运行”,iii 负责路由、序列化和投递。
把服务能做的所有事情映射成 Worker / Function / Trigger 之后,系统就同时做到了两件事: effortlessly composable + completely observable。
4. 四语言 SDK:不只是 Rust 玩具
iii 不是只有 Rust 可用。官方 SDK 覆盖四语言:
| 语言 | 包 | 安装 |
|---|---|---|
| Node.js | iii-sdk |
npm install iii-sdk |
| Python | iii-sdk |
pip install iii-sdk |
| Rust | iii-sdk |
Cargo.toml |
| Go | iii-sdk |
go get github.com/iii-hq/iii/sdk/packages/go/iii |
这意味着你可以在同一个 iii 系统里混合部署 TS API service + Python 数据管道 + Rust 微服务,它们共享同一个 catalog、同一套 function calling、同一份 trace。
5. Agent 故事:不是“调用工具”,是“扩展系统”
很多 Agent 框架里的 tool calling 是静态的:你在 config 里声明一组 tool,Agent 只能调用这些。
iii 的思路不同:当任务需要系统里没有的能力时,Agent 可以 add a worker,然后 discover 它的 functions,调用它们,并查看 trace。跟开发者用的接口完全一致。
这意味着 Agent 不只是“调用现有服务”,而是 运行时动态扩展系统。你的 Agent 可以根据当前任务,现场拉入一个 queue worker、一个 sandbox worker、一个 database worker,然后立刻使用。
README 里也明确把这套能力叫做 Agent Skills:
npx skills add iii-hq/iii/skills
npx skills add iii-hq/workers --list
npx skills add iii-hq/workers --skill database
6. Console:实时看见整个系统
iii 自带一个 iii-console(React + Rust),可以实时 inspect:
- Workers 状态
- Functions / Triggers
- Queues
- Traces
- Logs
- Real-time state
对飞熊这种技术品牌定位的人,iii-console 是一个很好的 演示资产:你可以现场展示“加一个 worker 之后,系统实时可见、可追踪、可调用”,比 PPT 有说服力得多。
7. 与同类项目的定位差异
| 项目 | 本质 | 接入成本 | 实时性 | Agent 能力 | 多语言 |
|---|---|---|---|---|---|
| iii | 共享运行时 / system surface | iii worker add |
✅ 实时 | ✅ 动态扩展 | 4 语言 |
| Temporal | 工作流引擎 | workflow / activity 改造 | 工作流级 | ❌ | 多语言 |
| Dapr | 分布式运行时 | sidecar + component | 组件级 | ⚠️ 有限 | 多语言 |
| LangChain / LangGraph | Agent 编排 | Python 代码 | 运行级 | ✅ 核心 | 主要是 Python |
| agentmemory | Agent 记忆层 | MCP / hooks | 检索级 | ✅ | TS |
关键区别:iii 不把自己定位成“又一个 workflow engine”或“又一个 Agent framework”。它是一个 让所有服务共享同一份实时视图的可组合运行时。Agent 只是其中一个接入层,不是唯一目标。
8. 适用场景与边界
最适合
- 多服务团队:TS API + Python pipeline + Rust worker 混跑,希望统一观测和调用
- Agent 系统搭建:希望 Agent 能按需动态扩展能力,而不是依赖静态 tool config
- 平台工程:想给应用团队提供“开箱即用”的 queue / cron / state / observability
- 技术演示:需要直观展示“服务实时可组合、可追踪”的场景
需要留意的边界
- License 分层:engine 是 Elastic License 2.0,不是宽松 Apache/MIT。如果你要基于 engine 做二次分发或 SaaS,需要仔细看 ELv2 限制
- 学习曲线:Worker / Function / Trigger 三原语虽小,但背后是完整 runtime 概念,需要理解“共享引擎”的模型
- 生态早期:workers 市场还在增长(workers.iii.dev 已有多类 worker),但成熟度不及 Temporal / Dapr
- 国内资料稀缺:目前主要是英文生态,中文社区刚刚起步
9. 为什么它值得飞熊关注
iii 背后有一个更适合技术品牌讲清楚的故事:AI 工程化的下一站不是“更大的模型”,而是“更好的运行时”。
飞熊的核心能力是技术咨询和重点项目。如果客户已经在用 Claude Code / OpenClaw / Cursor,你需要的不是又一个“记忆层”或又一个“Agent 框架”,而是一个 能让所有服务、所有 Agent、所有工具共享同一份实时视图的运行时。iii 刚好在这个交叉点上。
再加上它的四语言 SDK、Agent Skills、实时 Console、Docker 一键部署,足够支撑一场 30 分钟的技术演示,也足够写成一篇文章。
10. 总结
| 指标 | 数值 |
|---|---|
| 仓库 | https://github.com/iii-hq/iii |
| 核心语言 | Rust(engine)+ TS / Python / Go(SDK) |
| 协议 | engine: Elastic License 2.0;SDK/console/docs: Apache 2.0 |
| SDK 语言 | 4 种(Node.js / Python / Rust / Go) |
| 核心原语 | Worker / Function / Trigger |
| Agent 能力 | 动态 add worker + discover + call + trace |
| Console | 实时 inspect workers / functions / queues / traces / logs |
| Docker | iiidev/iii |
| 官网 | https://iii.dev |
| Worker 市场 | https://workers.iii.dev |
如果你受够了“每加一种能力就多一套集成”,iii 值得认真看一次。它不是银弹,但它是目前 服务实时可组合 + Agent 可扩展 这条路上最干净的原语设计之一。
项目地址:https://github.com/iii-hq/iii
官网:https://iii.dev
Worker 市场:https://workers.iii.dev