@tarko/agent 是一个事件流驱动的元 Agent 框架,专为构建高效的多模态 AI Agent 而设计。它提供了完整的 Agent 生命周期管理、工具集成和多模型支持。
此 Agent SDK 提供了低级别的编程 API,适用于从头构建 AI Agent:
与高级框架不同,@tarko/agent 给你完全的控制权来定制 Agent 行为。
native: OpenAI 兼容的原生函数调用;prompt_engineering: 基于提示的工具调用;structured_outputs: JSON Schema 结构化输出。创建 index.ts:
执行:
输出:
定义 Agent 实例:
基于源码中实际的 AgentOptions 接口,所有选项都是可选的:
id: Agent 实例的唯一标识符(默认: "@tarko/agent")name: Agent 名称,用于追踪和日志(默认: "Anonymous")instructions: Agent 的系统提示,完全替换默认提示(默认: 内置智能助手提示)model: 模型配置对象,包含 provider、id、apiKey 等temperature: LLM 温度,控制输出随机性(默认: 0.7)top_p: 核采样参数,控制词汇选择多样性(默认: 模型默认值)maxTokens: 每次请求的 Token 限制(默认: 1000)thinking: 推理内容控制选项tools: Agent 可用的工具数组tool: 工具过滤选项,支持 include/exclude 模式toolCallEngine: Tool Call Engine 类型(默认: 'native')
'native': OpenAI 兼容的原生函数调用'prompt_engineering': 基于提示的工具调用'structured_outputs': JSON Schema 结构化输出maxIterations: 最大迭代次数(默认: 1000)context: 上下文感知选项,如 maxImagesCountlogLevel: 日志级别(LogLevel.DEBUG、LogLevel.INFO 等)metric: 性能指标收集配置enableStreamingToolCallEvents: 是否启用流式工具调用事件(默认: false)workspace: 文件系统操作的工作目录sandboxUrl: 沙箱环境 URLeventStreamOptions: 事件流处理器配置initialEvents: 初始化时恢复的事件数组定义 Tool 实例:
id: 工具的唯一标识符description: 工具功能描述parameters: 工具参数的 Zod 模式function: 实现工具逻辑的异步函数在上面的基础示例中,如果启用 stream: true:
您将获得包含不同事件类型的流式输出:
assistant_message: 完整的助手消息tool_call: 工具执行事件tool_result: 工具执行结果assistant_streaming_message: 流式消息块除了完整的 Agent 流程,你也可以直接调用当前配置的 LLM:
@tarko/agent 提供丰富的 Hook 让你自定义 Agent 行为:
更多高级使用模式,请参阅 Agent Hooks 文档。