Skip to content

Noeta给「必须一直跑下去的 agent」用的 Python 运行时 + SDK

今天在你自己的进程里驱动一个 agent;明天把同一个 agent 放到多 worker、多 host 的池子上跑 —— agent 本身一行不用改。每一项能力都是插件,每一家模型厂商都只隔着一行接线,每一次运行都持久到能扛住 kill -9、事后还能 replay。

落在公开排行榜的第一梯队

基准范围noeta-agent main(Claude Opus 4.8)领域水平
Terminal-Bench 2.140 题分层抽样82.5%(33/40)公开榜单区间 58.7%–83.8%
SWE-bench Verified15 实例子集86.7%(13/15)榜首约 79%,中段约 66–77%

跑在 harbor(官方 Terminal-Bench harness)上,用官方数据集,由每道题自己的 verifier 打分。参赛的是 noeta-agentmain 预设,完全由本 SDK 的公开面组装而成。两行都是抽样,并如实标注 —— 完整方法学、排除项与可复跑命令见基准测试

60 秒试用

bash
uv pip install noeta-sdk      # noeta-runtime 会作为传递依赖一起装上

零凭证、零网络 —— 用离线的 FakeLLMProvider 驱动一轮:

python
from noeta.sdk import Options, query, LLMResponse, TextBlock, Usage
from noeta.sdk.testing import FakeLLMProvider

provider = FakeLLMProvider(responses=[
    LLMResponse(stop_reason="end_turn",
                content=[TextBlock(text="Hello from Noeta.")],
                usage=Usage(uncached=1, output=1))
])

result = query(
    Options(system_prompt="You are concise.",
            allowed_tools=("Read",),
            permission_mode="bypassPermissions"),
    goal="Say hello.",
    provider=provider,
    model="stub-model",
)
assert result.answer() == "Hello from Noeta."

换一个 provider 就能接上真实模型 —— 见 配置 Provider

找到你要的页面

第一次来?先看快速上手,再看你的第一个 agent。其余内容都在下面。

教程 —— 边做边学

页面你会得到
快速上手(5 分钟)安装、离线跑通一轮、读懂它产生的事件日志。
你的第一个 agent一个带自定义工具和权限闸门的真实 agent。
CI 集成在 CI 里确定性地跑 agent,不需要 API key。

操作指南 —— 解决一个具体问题

页面什么时候用
配置 Provider你想接真实模型:Anthropic、OpenAI 兼容网关,或 Responses API。
构建自定义工具agent 需要调用你自己的代码。
生成子代理一个 Task 需要把部分工作委派出去并等待结果。
连接 MCP你想用现成 MCP server 提供的工具。
编写插件你想把工具、agent 或 policy 打包复用。
部署 WorkerTask 需要在启动它的进程之外继续运行。
用 Docker 部署你要把 worker 作为容器发布。
使用 Sandbox工具调用必须与宿主机隔离运行。
多租户记忆多个租户共用一套部署,且彼此不可见。
切换 Provider已有的 agent 要换到另一个端点。

核心概念 —— 理解这个模型

页面讲什么
概念总览阅读顺序,以及每个概念的一句话定义。
事件溯源为什么状态是 fold(events),以及这带来了什么。
任务模型Task 是唯一原语:状态、Attempt、子任务。
引擎与执行一个 Step 做的事:取 lease、fold、组装上下文、决策、派发工具。
Fold 与快照如何从日志重建状态,以及让它保持快速的快照。
唤醒与恢复为人、定时器或子任务挂起 —— 并恰好唤醒一次。
Guard 与 Observer谁能拦下一次工具调用,谁只能旁观。
Composer 与缓存prompt 如何按三段组装以命中 provider 缓存。
Provider 中立一个内部协议、三个适配器,内核里没有任何厂商。

架构 —— 它是怎么搭起来的

页面覆盖
概览整个系统的导览。
包与导入规则noeta-sdk 位于 noeta-runtime 之上、同一个命名空间,以及隔开二者的规则。
状态与写入者状态切片、单写入者不变式、带版本的 fold。
扩展平面三个平面上的十六个 Surface,以及 built-in plugin 如何走同一条路。

参考 —— 查具体细节

页面内容
SDK API 地图所有可从 noeta.sdk 导入的东西,并链到细节页。
query / Client两个入口、它们的参数,以及返回什么。
Options每一个 Options 字段和各个权限模式。
类型与测试替身事件、内容块、结果,以及离线测试替身。
插件总览插件是什么,以及它如何对某个 agent 生效。
插件 manifestmanifest 结构、加载过程与版本锁定。
插件 Surface全部十六个扩展 Surface,每个一节。
工具内置工具清单。
预设代理预设 agent 及各自的接线。
WorkerLoopworker 池 API、lease 与轮询行为。
对比Noeta 与其他 agent 框架的对比。
术语表按领域分组的全部术语,附 A–Z 索引。

运维 —— 让它跑在生产上

页面回答
故障排查你真正会遇到的故障:现象、原因、修法。
已知限制Noeta 目前还做不到什么,直说。
基准测试建在 Noeta 上的 agent 在公开基准上的成绩,以及这是怎么测的。

Released under the Apache License 2.0.