DECLARATIVE AGENT FRAMEWORK
不写循环,不拼提示词管道。装饰器声明四类单元,主 agent 自主编排执行, 一次 run 交付结构化结果与完整调用树——你交付的是服务,不是对话脚本。
npm i -g @migor/cli && agentia create my-app
01 — UNITS
单元即流水线的阶段。四类单元对主 agent 都是菜单里的可调用项——声明一次,调度交给模型。
类方法即工具。入参按 JSON Schema 解析,先校验再执行;失败回 is_error,run 不中断。
确定性脚本里按需调模型:调几次、何时停、结果怎么加工,全由代码决定。
独立循环 + 裁剪上下文。中间过程不外泄,只有最终报告回流主上下文。
模板与 playbook 资产。模型判定需要时拉取进上下文,支持 volatile 与静态常量。
02 — HOW IT WORKS
触发进来,结果出去。中间每一步都记在调用树上。
03 — FEATURES
create 脚手架、g 生成单元。一单元一文件夹,长文本放 .md;目录扫描与显式注册表双装配。
runId == traceId。每次模型往返与单元调用都记账:token、成本、耗时、错误分类,子 agent 递归成树。
菜单查重、引用存在性、DI 循环依赖——在启动时失败,而不是在线上。
先丢旧工具对,再摘要压缩,预算护栏带滞回防抖;CJK 感知 token 估算。
同步 RPC、异步任务、定时调度,共用一份输入契约;幂等去重,落盘续跑。
UnitMiddleware 洋葱模型包裹每次单元调用:鉴权 / 限流 / 缓存 / 审计皆切面,trace 同级记账,业务单元零侵入。
标准 Stage 3 装饰器 + 显式 DI,不押 reflect-metadata;tsx / esbuild / tsgo 全兼容。
04 — QUICKSTART
npm i -g @migor/cli
agentia create my-app
cd my-app && npm install
agentia g subagent doc-reviewer # 独立子代理
agentia g skill note-writer # 代码控制流程
agentia g prompt style-guide # 文本资产
export ANTHROPIC_API_KEY=sk-ant-...
npm run dev
import { Tool } from '@migor/agentia';
export default class Weather {
@Tool({
description: '查询城市天气',
schema: {
type: 'object',
properties: { city: { type: 'string' } },
required: ['city'],
additionalProperties: false,
},
strict: true,
})
get_weather(input: { city: string }) {
return `上海 72°F sunny(${input.city})`;
}
}