Ageniti 概览
Ageniti 用来把 React 和 TypeScript 应用中的选定能力定义成结构化 action,并通过 CLI、HTTP、MCP、OpenAI 兼容的 tool calling、Vercel AI SDK 风格工具、JSON runner、本地 dev console,以及 React 直接调用这些入口暴露出去。
它是用来构建 给 Agent 使用的应用 的,不是用来构建 Agent 框架的。
你会得到什么
- 通过
defineAction()定义的类型化 action contract。 - 一套共享 runtime,统一处理校验、权限、中间件、超时、重试、日志、进度和 artifacts。
- 面向 CLI、HTTP、MCP、React、JSON 自动化、本地开发和 LLM tool calling 的薄适配层。
- 官方打包能力,可生成 CLI launcher、MCP stdio launcher、manifest 和 bundle 元数据。
- 面向项目接入的工具,包括
init、doctor、配置驱动构建,以及零配置 app 入口发现。 - 在不同 surface 上保持一致的成功和失败返回结构。
- 明确的应用边界,不依赖从任意 UI 代码中“猜”出工具能力。
核心模型
Existing app capability
|
v
Typed action contract
|
v
Shared runtime
|
+--> CLI
+--> JSON runner
+--> MCP
+--> OpenAI tools
+--> AI SDK tools
+--> Dev console
+--> React invocationAgeniti 把重要语义集中在 runtime 中,把每个对外 surface 做得很薄。这样同一个 action 定义可以复用到多种入口,而不用为每种集成方式重复写一遍业务逻辑。
安装
npm install @ageniti/coreAgeniti 是纯 ESM 包,需要 Node.js 20 或更高版本。
最小示例
import { createAgenitiApp, defineAction, s } from "@ageniti/core";
const searchTasks = defineAction({
name: "search_tasks",
description: "Search workspace tasks by status.",
input: s.object({
status: s.enum(["open", "blocked", "done"]).describe("Task status"),
}),
output: s.object({
items: s.array(
s.object({
id: s.string(),
status: s.string(),
})
),
}),
run(input, ctx) {
ctx.logger.info("Searching tasks.", { status: input.status });
return ctx.services.tasks.search(input);
},
});
export const app = createAgenitiApp({
name: "workspace-tools",
actions: [searchTasks],
services: { tasks },
});接下来你可以通过 app.createCli()、app.createMcpHandler()、app.createAISDKTools()、app.createReactAdapter() 或 app.createDevServer() 把同一个 action 暴露到不同入口。
React 与 Expo 工作流
对于 React、Next.js 和 Expo 项目,推荐工作流是:
- 把业务逻辑放在可复用 service 中
- 把选定能力包成 Ageniti action
- 单独增加一个 Node-safe 的 headless app 入口,例如
src/ageniti/app.ts - 使用
npx @ageniti/core init react、npx @ageniti/core init expo、npx @ageniti/core init next和npx @ageniti/core doctor完成项目接入 - 使用你生成的 app CLI,例如
task-app build和task-app publish生成并交付官方产物
这样可以保持现有 UI 不变,同时得到稳定的 agent-facing 打包路径。
文档导航
- 快速开始:从零定义第一个 action 并暴露到主要 surface。
- 核心概念:app、action、contract、runtime、surface 和 headless entry。
- 调用入口:什么时候使用 CLI、MCP、HTTP、JSON、React、tools 和 dev console。
- 安全模型:visibility、权限、确认、副作用和 metadata。
- 打包发布:generated bundle、MCP descriptor、package、publish 和 release review。
- API 参考:完整的公开 SDK API 说明。
- 入口模块:包导出路径和各 subpath 的使用场景。
- Runtime 语义:返回结构、错误、重试、超时、确认、日志和 artifacts。
- Recipes:常见集成方式的可复制模式。
- SDK 成熟度:判断一个给 Agent 使用的应用 SDK 何时足够可发布、可推广。
- Roadmap:按
P0 / P1 / P2排好的下一阶段产品与文档路线图。 - Skill 指南:说明 Ageniti app 暴露给 Agent 的 skill contract。
- 边界说明:Ageniti 有意包含和不包含的能力。
- 常见问题:关于定位和使用方式的直接回答。
- 发布检查清单:打包和发布前的检查项。
设计边界
Ageniti 不会扫描你的 React tree,不会替换路由,不会接管状态管理,也不会编排 planning loop。你需要显式声明想暴露的应用能力,再决定哪些 surface 可以调用它们。