Genkit 没有给你一个包含五十个选项的大 Agent 类。它的理念是:代理由你已在使用的同一套小原语(工具、中间件、中断、会话、流式)逐层组合而成,复杂行为是叠加出来的,而非硬塞进去。这样,人工审批、沙箱编码助手、多代理委托不再各自独立,而是同一组想法的不同组合。</>
一个可运行的 agent 只需约 10 行代码:ai.defineAgent({ system, tools, store })加agent.chat().sendStream()。状态管理也灵活——传store则服务端管理会话,省略则客户端管理状态 blob,同一 agent,同一 API。
中断将工具调用变成暂停按钮:定义一个无处理器的工具,调用时 agent 暂停,交由你处理,之后再精确恢复。这是最干净的人工介入原语。
中间件以一行一个能力的方式叠加。use: [...]数组可以串联文件系统、技能库、审批门、重试和子代理委托。审批门中间件基于同样的中断机制;子代理就是作为工具的 agent。
同一 agent 可在服务端和浏览器中运行。后端用expressHandler(agent)暴露 HTTP 端点,前端用remoteAgent({ url })连接,流式、中断恢复语义完全一致。
更多示例代码和详细说明见正文末尾链接。
</>
多个原语互相增强:中断实现人工介入,中间件将文件系统、技能、重试、委托变为一行配置;审批门就是中断,子代理就是工具,浏览器客户端就是服务端 API 的镜像。学一遍原语,剩下的就是重组,这正是“整体大于部分之和”的意思。
#开发者 #工具 #Genkit #AI #TypeScript #中间件 #代理 #中断 #Web
@DevToolboxHub
