惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
博客园_首页
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
P
Palo Alto Networks Blog
V
Vulnerabilities – Threatpost
雷峰网
雷峰网
O
OpenAI News
SecWiki News
SecWiki News
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
N
News | PayPal Newsroom
Project Zero
Project Zero
Forbes - Security
Forbes - Security
IT之家
IT之家
A
Arctic Wolf
WordPress大学
WordPress大学
Jina AI
Jina AI
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
博客园 - 聂微东
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
Cloudbric
Cloudbric
G
GRAHAM CLULEY
博客园 - 叶小钗
H
Hacker News: Front Page
腾讯CDC
量子位
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
C
Cyber Attacks, Cyber Crime and Cyber Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
L
Lohrmann on Cybersecurity
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
C
CERT Recently Published Vulnerability Notes

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 你要加油呐 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
iii:零集成架构的后端统一运行时
Cheman · 2026-05-28 · via BlogFinder

一、项目概述

在现代后端开发中,每一个服务从第一行业务代码开始,就需要集成各种基础设施:消息队列、定时任务、HTTP 服务、状态管理、可观测性、Agent、沙箱等。每种能力都带来独立的集成故事,导致开发周期长、维护成本高。

iii 是由 Motia LLC 开发的后端统一运行时,它将所有这些基础设施"坍缩"为一个实时系统表面。通过三个简单的原语——WorkerFunctionTrigger——开发者可以轻松组合、扩展和实时观测服务栈中的每一个组件。

核心特性:

  • 零集成架构:一条命令添加队列、Agent、沙箱等能力,无需复杂配置
  • 实时目录:所有 Worker 自动注册到实时目录,可即时发现和调用
  • 三原语模型:Worker / Function / Trigger 构成完整的心智模型
  • 多语言 SDK:支持 Node.js、Python、Rust
  • Agent 友好:Agent 可以像开发者一样动态添加 Worker 并调用其功能

二、技术原理

2.1 架构设计

iii 采用 Rust 编写的高性能引擎(Engine)作为核心运行时,负责:

  • Worker 注册与发现:管理所有 Worker 的生命周期和元数据
  • 路由与序列化:处理 Trigger 触发的 Function 调用路由
  • 可观测性:内置 tracing、logs、实时状态监控

架构层次:

┌─────────────────────────────────────────────┐
│              iii Console (React + Rust)      │
│         可视化 Worker / Function / Trigger   │
├─────────────────────────────────────────────┤
│                 iii Engine (Rust)            │
│      核心运行时 / 模块 / 协议 / 路由          │
├─────────────────────────────────────────────┤
│    SDKs (Node.js / Python / Rust)           │
│         Worker 定义 / Function 注册          │
└─────────────────────────────────────────────┘

2.2 三原语模型

Worker 是注册到 iii 引擎的进程,可以是 TypeScript API 服务、Python 数据管道或 Rust 微服务。Worker 之间通过共享运行时自动发现彼此。

# Python 示例:定义一个 Worker
from iii_sdk import Worker

worker = Worker("content-service")

@worker.function("classify")
async def classify_content(text: str) -> str:
    # 业务逻辑
    return "category"

Trigger 是触发 Function 执行的声明式规则,支持:

  • 直接函数调用
  • HTTP 端点
  • Cron 定时任务
  • 队列订阅
  • 状态变更事件
  • 流事件
// Node.js 示例:声明 HTTP Trigger
import { Worker } from 'iii-sdk';

const worker = new Worker('api-gateway');

worker.trigger('http', {
  path: '/api/users',
  method: 'GET',
  function: 'users::list'
});

Function 是带有稳定标识符的工作单元,如 content::classifyorders::validate。它接收输入、执行工作并可选返回输出。

2.3 核心技术栈与选型理由

组件技术选型理由
EngineRust高性能、内存安全、异步支持
SDKNode.js / Python / Rust覆盖主流后端语言
ConsoleReact + Rust前端友好 + 高性能后端
通信协议WebSocket + 自定义协议实时双向通信
序列化serde_json / serde_yamlRust 生态标准选择

从源码可见,Engine 使用 Tokio 作为异步运行时:

// Cargo.toml
tokio = { version = "1", features = ["macros", "rt-multi-thread", "fs", "process", "time"] }

2.4 零集成的工作原理

传统模式:

新可观测性工具 → 无数集成配置
新 Agent 框架 → 单独的重试/追踪/超时配置
新队列 → 供应商评估、采购、数周集成

iii 模式:

iii worker add observability
iii worker add queue
# 完成。系统自动注册、可追踪、可调用

关键在于 共享运行时:所有 Worker 通过 iii Engine 统一管理,自动获得:

  • 统一的路由机制
  • 统一的 tracing 和 logs
  • 统一的重试/超时配置
  • 实时状态同步

三、安装与快速开始

3.1 环境要求

  • 操作系统:Linux / macOS / Windows
  • 运行时:Node.js ≥ 20 / Python ≥ 3.8 / Rust ≥ 1.70
  • 包管理器:pnpm(Node.js)/ pip / uv(Python)/ cargo(Rust)

3.2 安装 iii CLI

通过 Docker:

docker pull iiidev/iii:latest

通过 npm(SDK):

npm install iii-sdk
# 或
pnpm add iii-sdk

通过 pip(Python SDK):

通过 cargo(Rust SDK):

[dependencies]
iii-sdk = "0.16"

3.3 最简运行示例

# 初始化项目
iii project init myapp
cd myapp

# 启动引擎
iii

# 添加 Worker 能力
iii worker add queue
iii worker add agent
iii worker add sandbox

访问 workers.iii.dev 浏览可用的 Worker 目录。

四、使用方法与实战

4.1 基础用法:定义一个 API 服务

Node.js 示例

import { Worker, Function, Trigger } from 'iii-sdk';

const worker = new Worker('user-service');

// 定义 Function
@worker.function('create')
async function createUser(data: UserData): Promise<User> {
  // 业务逻辑
  return { id: '123', ...data };
}

// 声明 HTTP Trigger
worker.trigger('http', {
  path: '/users',
  method: 'POST',
  function: 'user-service::create'
});

Python 示例

from iii_sdk import Worker

worker = Worker("order-service")

@worker.function("validate")
async def validate_order(order_id: str) -> bool:
    # 验证逻辑
    return True

# 声明队列 Trigger
worker.trigger("queue", {
    "queue_name": "orders",
    "function": "order-service::validate"
})

4.2 进阶用法:Agent 动态扩展

iii 对 Agent 开发特别友好。当 Agent 发现系统缺少某种能力时,可以动态添加 Worker:

# Agent 可以在运行时添加 Worker
await iii.worker.add("image-processor")

# 自动发现新 Worker 的函数
functions = await iii.discover_functions("image-processor")

# 调用函数
result = await iii.call("image-processor::resize", {
    "image": "path/to/image.jpg",
    "width": 800
})

# 查看追踪记录
trace = await iii.trace.get(result.trace_id)

4.3 实际项目示例:内容处理管道

// content-worker.ts
import { Worker } from 'iii-sdk';

const worker = new Worker('content-pipeline');

// 步骤1:分类
@worker.function('classify')
async function classifyContent(text: string) {
  // 调用 ML 模型
  return { category: 'tech', confidence: 0.95 };
}

// 步骤2:摘要
@worker.function('summarize')
async function summarizeContent(text: string) {
  return { summary: '...' };
}

// 步骤3:发布
@worker.function('publish')
async function publishContent(content: Content) {
  // 发布到下游系统
}

// 定义流程 Trigger
worker.trigger('state', {
  entity: 'content',
  event: 'created',
  function: 'content-pipeline::classify'
});

五、常见问题与解决方案

5.1 安装失败

问题:Rust 编译失败

error: failed to run custom build command for `iii-engine`

解决方案

  1. 确保 Rust 版本 ≥ 1.70
  2. 安装系统依赖(macOS):
xcode-select --install
brew install openssl

5.2 运行时错误

问题:Worker 无法注册到 Engine

Error: Connection refused to ws://localhost:49199

解决方案

  1. 确认 iii Engine 已启动:
iii
# 或指定配置
iii --config config.yaml --port 49199
  1. 检查端口占用:

5.3 性能问题

问题:Function 调用延迟高

解决方案

  1. 使用 --release 编译:
cargo build --release -p iii
  1. 调整 Tokio 线程池(在代码中):
#[tokio::main(flavor = "multi_thread", worker_threads = 8)]
async fn main() {
    // ...
}

5.4 兼容性问题

问题:SDK 版本与 Engine 版本不匹配

解决方案

检查版本一致性。从 Cargo.toml 可见当前版本为 0.16.0-next.4

[workspace.package]
version = "0.16.0-next.4"

确保 SDK 和 Engine 使用相同版本。

六、总结

iii 通过 Worker / Function / Trigger 三个原语,重新定义了后端服务的开发体验。它将传统需要数周集成的基础设施——队列、定时任务、HTTP、状态管理、可观测性——统一到一个实时系统表面,实现真正的零集成架构。

对于平台团队,iii 提供了发布 Worker 的标准方式;对于应用团队,iii 简化了 Function 注册和 Trigger 声明;对于 Agent 开发者,iii 提供了与人类开发者相同的目录发现和函数调用接口。这种统一性使得 iii 成为现代后端架构的理想选择。

项目信息