ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Conductor .NET 原生 Agent 实战:使用 C SDK(conductor-ai)快速构建并运行持久化 Agent

Conductor .NET 原生 Agent 实战:使用 C SDK(conductor-ai)快速构建并运行持久化 Agent Conductor .NET 原生 Agent 实战使用 C# SDKconductor-ai快速构建并运行持久化 Agent【免费下载链接】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本指南以 Conductor 仓库中 .NET 原生 Agent 快速上手指南ui-next/src/pages/agent/guides/dotnet/native.md为主体完整讲解从安装conductor-ai包、配置服务器连接与 LLM 模型到用 C# 定义Agent、通过AgentRuntime运行并输出结果的完整流程并结合仓库中 Conductor Agents 与 首个 Agent 工作流图 等文档与示例深入剖析 Agent 的部署生命周期、AGENT任务调用契约与agentType执行模式。读完本文你将能够在 .NET 应用中独立完成一个可被工作流复用的 Conductor Agent 的编写、运行与集成。什么是 Conductor Agent 与原生路径在 Conductor 中Conductor Agent是用代码编写并在服务器上注册的 Agent你使用 Conductor 官方 SDKPython、Java、TypeScript/JavaScript、C#构建它或引入受支持的 Agent 框架OpenAI Agents、Google ADK、LangChain/LangGraph、Semantic Kernel 等Conductor 会将其编译成一个普通的工作流定义。由于编译后的 Agent 本身就是工作流每一次 LLM 调用、工具调用、等待、重试与分支都会在 UI 与 API 中可见并且能与工作流的其他能力任务、分支、定时调度、人工审批、取消自由组合。所谓原生native路径指的是直接使用 C# SDK 自带的Agent类与AgentRuntime不经过任何框架适配层它是与仓库中openai.md、semantic-kernel.md分别对应conductor-ai-openai、conductor-ai-semantic-kernel适配包并列的三种 .NET 编写方式之一。原生路径最简洁适合从零快速验证 Conductor 的 Agent 运行机制。前置条件服务器端要求在运行任何 Conductor Agent 之前服务器需要启用 AI 集成。根据 Conductor Agents 的说明在服务器配置中设置conductor.integrations.ai.enabledtrue当该属性为false或被省略时已部署 Agent 的控制面以及agentType: conductor执行模式均不可用。此外服务器还需要配置 LLM 提供方的凭据如 OpenAI 的 API Key客户端侧仅通过环境变量指定要使用的模型名。步骤一添加 SDK 包在 .NET 项目目录中执行dotnet add package conductor-aiconductor-ai是 Conductor 官方 C# SDK 中承载 Agent 能力的核心包对应 GitHub 仓库中的Conductor.AI命名空间。若你的项目引入了 OpenAI Agents 或 Semantic Kernel 这类外部框架则分别使用conductor-ai-openai、conductor-ai-semantic-kernel适配包具体示例可参考同目录下的 openai.md 与 semantic-kernel.md。步骤二配置服务器连接与模型运行 Agent 前需要让 SDK 知道 Conductor 服务器地址、可选的认证凭据以及默认 LLM 模型export CONDUCTOR_SERVER_URL{{CONDUCTOR_SERVER_URL}} # 对于需要认证的 Conductor 服务器 # export CONDUCTOR_AUTH_KEYYOUR_AUTH_KEY # export CONDUCTOR_AUTH_SECRETYOUR_AUTH_SECRET export CONDUCTOR_AGENT_LLM_MODELopenai/gpt-4o-mini各变量作用如下环境变量作用说明CONDUCTOR_SERVER_URLConductor 服务器 API 地址本地开发通常为http://localhost:8080/api参见 first-ai-agent.md 中的示例在 agent-tool-calling.md 的跨语言对比表中Python、Java、TypeScript 与 C# SDK 均使用该变量CONDUCTOR_AUTH_KEY/CONDUCTOR_AUTH_SECRET认证凭据仅当服务器开启了认证如 Conductor 的 API 认证配置时需要两行均被注释CONDUCTOR_AGENT_LLM_MODEL默认 LLM 模型标识格式为provider/model示例openai/gpt-4o-mini代码中也可通过Agent.Model属性按 Agent 单独覆盖注意{{CONDUCTOR_SERVER_URL}}是文档模板占位符实际使用时请替换为真实的服务器地址如http://localhost:8080/api。步骤三编写并运行一个 Agent原生路径的完整代码示例摘自 native.mdusing Conductor.AI; var agent new Agent(greeter) { Model openai/gpt-4o-mini, Instructions You are friendly and concise., }; await using var runtime new AgentRuntime(); var result await runtime.RunAsync(agent, Share a fun C# fact.); result.PrintResult();逐段解读这段代码new Agent(greeter)定义一个名为greeter的 Agent名称是其在服务器上的标识也是后续工作流中AGENT任务按名调用的依据。Model指定该 Agent 使用的 LLM 模型格式与CONDUCTOR_AGENT_LLM_MODEL一致未设置时回退到环境变量。Instructions系统提示词定义 Agent 的角色与行为风格这里要求友好且简洁。new AgentRuntime()SDK 运行时的核心对象await using确保资源在运行结束后被正确释放。runtime.RunAsync(agent, prompt)交互式运行——在一次调用内完成编译 执行。prompt即用户输入。result.PrintResult()将运行结果输出到控制台。深入run 与 deploy / serve 的生命周期差异根据 Conductor Agents 的说明每个 Conductor Agent 都经历五个操作且这些名字就是你在 SDK 中看到的动词Create在代码中定义 Agent使用 SDK 的Agent类或框架对象Plan检查 Agent 将编译成的工作流图适合在开发期与 CI 中使用Deploy将编译后的 Agent 注册到服务器成为可复用、带版本的 Conductor AgentServe启动执行 Agent 工具的工作进程当所用框架需要时Run执行 Agent。开发期用run一步完成编译与执行生产环境则由工作流通过AGENT任务按名调用已部署版本。上文示例中的RunAsync对应第 5 步的开发期快速运行。而 first-ai-agent.md 中展示了部署模式的做法先运行一次runtime.deploy(agent)注册可复用的greeter图只注册、不执行再用长驻进程runtime.serve(agent)保持所需 worker 可用若想交互式单次运行则把deploy换成runtime.run(agent, Say hello.)。何时用哪种迭代开发用run要让工作流或其他调用方稳定引用这个 Agent就用deployserve。集成在工作流中调用部署的 Agent原生路径写出的 Agent 与框架路径的 Agent 一样编译后都是工作流可以在其他工作流中通过AGENT任务复用。关键在于agentType字段——它决定执行模式而非编写框架agentType: a2a默认调用远程 A2A 端点agentType: conductor按name运行已部署的 Conductor Agent。一个最小示例摘自 conductor-agents.md{ name: run_agent, taskReferenceName: run_agent_ref, type: AGENT, inputParameters: { agentType: conductor, name: planner, prompt: ${workflow.input.prompt}, pollIntervalSeconds: 5 } }首次调用时name与prompt必填version可选用于固定已部署 Agent 的版本省略则使用最新版。需要时还可传入sessionId、runId、context、media、model、timeoutSeconds与idempotencyKey未提供时运行时自动生成重启稳定的幂等键。AGENT任务完成后会写入executionId、agentName、state、text以及完成时的结构化output。其状态映射如下摘自 conductor-agents.md运行时状态 / 输出 stateConductor 任务状态含义RUNNING/workingIN_PROGRESS任务按pollIntervalSeconds默认 5 秒继续轮询WAITING/input-requiredCOMPLETED运行因等待人工或工具输入而暂停输出含waiting: true可能含pendingToolCOMPLETED/completedCOMPLETED输出包含最终text与结构化outputFAILED/failedFAILED任务包含失败原因CANCELED/canceledCANCELED任务在可用时包含取消原因此外maxDurationSeconds限制整个运行时长默认 86400 秒maxPollFailures限制连续瞬时轮询失败次数默认 30两者都会终止任务并尽力取消子执行。仓库中 ai/examples/31-conductor-agent-basic.json 演示了部署的 Agent 作为工作流中的一步ai/examples/32-conductor-agent-human-in-loop.json 演示WAITING→HUMAN→ 通过executionId恢复同一运行的完整闭环。这些示例刻意只包含稳定的工作流契约与编写语言无关——用 C# 部署greeter后即可原样复用。后续深入路径Conductor AgentsAGENT任务完整的输入、输出、等待/恢复、超时与取消契约Build Your First Agentic Workflow Graph将 SDK 编写的 Agent 与普通 HTTP 任务组合成可观测的工作流图Run Your First Conductor Agent跨语言的首个 Agent 快速开始Agent Tool CallingC# 等各语言 SDK 的环境变量约定与工具调用示例同目录下的 openai.md 与 semantic-kernel.md.NET 的框架适配路径。【免费下载链接】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),仅供参考
返回列表