尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

在 Conductor 中运行 Vercel AI SDK 智能体:TypeScript 框架桥接实战指南

在 Conductor 中运行 Vercel AI SDK 智能体:TypeScript 框架桥接实战指南 在 Conductor 中运行 Vercel AI SDK 智能体TypeScript 框架桥接实战指南【免费下载链接】conductorConductor is an event driven agentic workflow engine providing durable and highly resilient execution engine for applications and AI Agents项目地址: https://gitcode.com/GitHub_Trending/co/conductor导读本文讲解如何将 Vercel AI SDK 编写的智能体Agent无缝接入 Conductor 的持久化运行时你保留 AI SDK 原生的tool()工具定义由io-orkes/conductor-javascript提供的Agent与AgentRuntime将其编译并执行为一次可审计、可恢复的 Conductor 工作流执行。读完本文你将掌握依赖安装、环境变量配置、以 AI SDK 工具为工具的智能体代码编写、运行与结果查看的完整闭环并理解框架桥接的底层原理与生产部署路径。本文对应仓库内源文档ui-next/src/pages/agent/guides/typescript/vercel-ai.md。一、背景把已有框架智能体交给 ConductorConductor 是一个事件驱动的智能体编排工作流引擎event driven agentic workflow engine其 Agents 能力在 Python、Java、TypeScript/JavaScript、C# 四种语言上均有 SDK 支持。对于已经在其他框架中构建好的智能体——例如 Vercel AI SDK、OpenAI Agents、LangChain、LangGraph、Google ADK——你无需重写智能体对象Conductor SDK 会把该框架对象编译并运行成一个持久化、可检查的 Conductor 执行记录。从源码结构看这套框架桥接模式在 TypeScript 侧的官方入口统一收敛到io-orkes/conductor-javascript/agents命名空间原生的 Conductor 智能体与各框架桥接共用同一套AgentRuntime接口参见 docs/quickstart/framework-agents.md 与 docs/devguide/ai/agent-framework-recipes.md。UI 侧也将 Vercel AI SDK 列为 TypeScript 语言面板下的可选框架之一参见 ui-next/src/pages/agent/guides/manifest.ts与 native、OpenAI Agents、LangChain、LangGraph、Google ADK 并列。二、第一步安装依赖与配置环境在 TypeScript/JavaScript 项目中安装三个包npm install io-orkes/conductor-javascript ai zod包名作用io-orkes/conductor-javascriptConductor 官方 JS/TS SDK提供Agent、AgentRuntime等智能体 APIaiVercel AI SDK 核心包提供tool()工具定义与generateText/streamText等原语zodAI SDK 工具参数的模式校验库tool()的parameters字段使用 zod schema 描述随后配置连接与模型环境变量export CONDUCTOR_SERVER_URL{{CONDUCTOR_SERVER_URL}} # For authenticated Conductor servers: # export CONDUCTOR_AUTH_KEYYOUR_AUTH_KEY # export CONDUCTOR_AUTH_SECRETYOUR_AUTH_SECRET export CONDUCTOR_AGENT_LLM_MODELopenai/gpt-4o-miniCONDUCTOR_SERVER_URLConductor 服务器地址。文档中的{{CONDUCTOR_SERVER_URL}}是占位符请替换为你的实际服务器地址连接前的完整配置流程参见 docs/quickstart/connect.md。CONDUCTOR_AUTH_KEY/CONDUCTOR_AUTH_SECRET仅当服务器开启鉴权时需要两者成对配置。CONDUCTOR_AGENT_LLM_MODEL默认模型标识采用provider/model的供应商限定格式例如openai/gpt-4o-mini。模型可通过环境变量统一设定也可在Agent(...)定义中按智能体单独指定后者优先级更高详见下文定义设置一节。需要说明的是运行前服务器必须能够访问你所选的模型供应商在本地服务器上需要在启动前导出供应商 API Key参见 docs/devguide/ai/llm-orchestration.md 中受支持的 LLM 供应商说明在托管/开发环境中则通过 AI/LLM 集成配置。示例默认使用 OpenAI 模型请准备对应的凭据。三、第二步用 AI SDK 的 tool 定义工具并运行这是本文的核心代码工具部分完全使用 Vercel AI SDK 原生的tool()API 编写智能体外壳由 Conductor 的Agent提供。保存为vercel-weather.tsimport { tool } from ai; import { z } from zod; import { Agent, AgentRuntime } from io-orkes/conductor-javascript/agents; const weather tool({ description: Get weather for a city, parameters: z.object({ city: z.string() }), execute: async ({ city }) ({ city, condition: Sunny }), }); const agent new Agent({ name: vercel_weather, model: openai/gpt-4o-mini, instructions: Use the weather tool., tools: [weather], }); const runtime new AgentRuntime(); try { const result await runtime.run(agent, Weather in San Francisco?); result.printResult(); } finally { await runtime.shutdown(); }3.1 逐段拆解工具定义AI SDK 原生tool({ description, parameters, execute })是 Vercel AI SDK 的标准工具契约。parameters用 zod 描述入参结构此处要求city为字符串execute是工具的实际执行逻辑。这意味着你项目中已有的 AI SDK 工具零改动即可接入。智能体定义Conductor 外壳new Agent({...})来自io-orkes/conductor-javascript/agents。name是智能体的唯一标识供调用方解析改名等同于部署一个全新智能体model可覆盖环境变量CONDUCTOR_AGENT_LLM_MODELinstructions即系统提示词tools数组接收上一步定义的 AI SDK 工具。运行时new AgentRuntime()创建运行时runtime.run(agent, prompt)将智能体编译并执行为一次 Conductor 工作流执行。result.printResult()打印智能体最终输出。资源释放try/finally中调用runtime.shutdown()释放运行时资源防止进程悬挂。3.2 运行npx tsx vercel-weather.ts运行后在 Conductor UI 的 Agents 页面即可打开该次运行编译生成的工作流定义查看执行的时间线、任务输入与输出详见下文验证执行记录。四、框架对象如何变成一次持久化执行理解框架桥接的关键在于执行模型每次runtime.run()都不是一次普通的函数调用而是一次被编译为 Conductor 工作流并落盘执行的可恢复执行。整个路径在 docs/devguide/ai/agent-framework-recipes.md 中被描述为四步开发期运行把框架智能体对象交给 SDKrun编译并执行一次执行记录立即在 UI 可见稳定后部署deploy将编译后的智能体注册到服务器成为有名字、有版本的 Conductor Agent运行 worker智能体的工具以本地函数执行需要常驻 worker 进程支撑工作流中调用父工作流通过AGENT任务按名字调用已部署的智能体与调用其他持久化步骤完全一致。服务端一侧AI 模块提供了AGENT任务的映射与处理实现例如 ai/src/main/java/org/conductoross/conductor/ai/tasks/mapper/AgentTaskMapper.java 负责把工作流中的AGENT任务参数映射到智能体执行请求。当智能体被纳入更大规模的工作流时任务记录会保存智能体执行 ID、状态、文本与结构化输出方便运维人员把父工作流与智能体运行关联起来排查参见 docs/quickstart/first-agent.md 中的AGENT任务示例。五、Agent 定义设置与运行设置的边界为了让框架桥接代码写得正确需要清楚Agent的两类配置它们常常是意外行为的来源完整参数表见 docs/devguide/ai/agent-configuration.md定义设置Definition settings写在new Agent({...})中随deploy()编译进工作流只有重新部署才会变更。设置默认值作用name必填调用方解析的名字改名即部署新智能体model供应商限定模型如openai/gpt-4oinstructions系统提示词tools[]模型可调用的工具本示例中的 AI SDK tool 就放在这里guardrails[]输入/输出检查见 docs/devguide/ai/agent-guardrails.mdagents[]多智能体系统中的子智能体strategyhandoff子智能体编排策略见 docs/devguide/ai/multi-agent-architecture.mdmax_turns25模型轮次硬上限防失控循环的主要手段max_tokens无单次模型调用上限temperature无采样温度context_window_budget无上下文压缩前的 token 预算metadata{}随定义携带的任意标签运行设置Run settings由调用方在每次run()/start()/stream()时传入只影响当次执行永不修改已部署的智能体。其中model、temperature、max_tokens既可在定义中设置也可在运行时覆盖——当两者都设置时当次运行以运行设置为准。生产实践要点同样出自 docs/devguide/ai/agent-configuration.md任何扩大智能体触达范围的设置都刻意设计为仅定义期可配工具、guardrails、CLI 白名单不允许调用方在运行时放宽max_turns是循环边界默认 25 对简单智能体偏宽松高并发场景建议调低重试必须使用idempotency_key否则一次重试就是一次全新执行session_id构成对话不带它的多次运行彼此独立密钥放进credentials而不是instructions前者按调用注入且不落盘到定义中。六、验证执行记录与排障每次runtime.run()之后到 Conductor UI 中找到该次执行确认终态并检查任务时间线、输入与输出流程参见 docs/quickstart/first-agent.md 的Verify and recover一节。若运行失败按以下顺序排查确认CONDUCTOR_SERVER_URL指向正确的服务器确认ai、zod、io-orkes/conductor-javascript三个包均已安装且版本兼容确认模型供应商凭据已配置本地服务器在启动前导出 provider API Key在 UI 中打开失败的任务查看报错后再重试。对于可能产生外部副作用的智能体动作在明确其幂等性与恢复策略之前不要盲目重试。七、从示例走向生产本示例演示的是run()开发路径。生产部署遵循同一运行时的四段式run开发执行→planCI 中检查编译图→deploy注册命名版本不执行→serve常驻 worker 进程执行工具。其中deploy()适合放进 CI/CDserve()会阻塞应当作为独立的长生命周期进程运行。部署完成后父工作流通过AGENT任务按名字调用智能体例如来自 docs/quickstart/first-agent.md{ name: ask_agent, taskReferenceName: ask_agent_ref, type: AGENT, inputParameters: { agentType: conductor, name: greeter, prompt: Summarize this workflow context: ${fetch_context.output.response.body}, pollIntervalSeconds: 5 } }在 TypeScript 侧从原生智能体仅依赖io-orkes/conductor-javascript参见 ui-next/src/pages/agent/guides/typescript/native.md到框架桥接智能体AgentRuntime的用法完全一致区别只在于传给run()的对象来自哪个框架——这正是框架桥接设计的核心框架是你的创作面Conductor 提供其周围的持久化执行。进一步的架构建议治理、评估、部署、组合、恢复与运维参见 docs/devguide/ai/production-agent-architecture.md 与 docs/devguide/ai/deploying-agents.md。相关资源源文档ui-next/src/pages/agent/guides/typescript/vercel-ai.md框架智能体快速入门docs/quickstart/framework-agents.md框架智能体参考docs/devguide/ai/agent-framework-recipes.mdAgent 配置参数详解docs/devguide/ai/agent-configuration.md原生 TypeScript 智能体指南ui-next/src/pages/agent/guides/typescript/native.md第一个智能体含AGENT任务示例docs/quickstart/first-agent.md服务端AGENT任务映射实现ai/src/main/java/org/conductoross/conductor/ai/tasks/mapper/AgentTaskMapper.java【免费下载链接】conductorConductor is an event driven agentic workflow engine providing durable and highly resilient execution engine for applications and AI Agents项目地址: https://gitcode.com/GitHub_Trending/co/conductor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表