调用入口
Surface 是从 Ageniti app 生成的可调用入口。每个 surface 都应该复用 shared runtime,而不是重复实现校验、授权、日志或输出处理。
CLI
当人、脚本、CI job 或本地运维需要命令入口时,使用 CLI。
await app.createCli().main();生成的 action command 支持 flags、--json、--schema、稳定 JSON 输出,以及受保护 action 的确认机制。
MCP
当 MCP host 需要发现和调用选定应用能力时,使用 MCP。
const handleMcp = app.createMcpHandler();打包后的 app 也可以生成 stdio launcher:
node ./dist/ageniti/mcp-stdio.mjs默认情况下,private 和 destructive actions 不会出现在 MCP discovery 中。
HTTP
当你想把 Ageniti 放在自己的 server、API gateway、route handler 或内部平台后面时,使用 HTTP。
默认路由:
GET /ageniti/actionsPOST /ageniti/actions/:name/invoke
HTTP handler 返回和其他 surface 一样的 runtime envelope。
JSON Runner
JSON runner 适合测试、本地脚本、自动化,以及不启动网络服务的确定性调用。
const result = await app.createJsonRunner().invoke({
action: "create_task",
input: { title: "Review release" },
});React Invocation
当现有 UI 想复用 CLI 或 MCP 使用的同一个 action 时,使用 React invocation。
const { useAction } = app.createReactAdapter();
const runCreateTask = useAction(createTask);Ageniti 不会替换你的组件、路由、状态管理或表单库。
OpenAI 与 AI SDK Tools
当 LLM 工具栈需要从 action contract 生成 function/tool schema 时,使用 tool adapter。
const openaiTools = app.createOpenAITools();
const responsesTools = app.createOpenAIResponsesTools();
const aiSdkTools = app.createAISDKTools();面向 LLM 的 adapter 默认会过滤 private 和 destructive actions。
Dev Console
集成过程中可以使用 dev console 在本地检查 action schema 并调用 action。
task-app dev --port 4321Dev console 是本地测试工具,不是 hosted production UI。
如何选择
- 想最快本地验证,先用 CLI。
- Agent host 需要 tool discovery 时,加 MCP。
- 希望由自己的后端管理 transport 和 auth 时,加 HTTP。
- 现有 UI 要复用同一能力时,用 React invocation。
- LLM 工具栈需要结构化函数定义时,用 generated tool schema。