
人工智能AI AgentAgent 编排低代码AI 技能RAG【免费下载链接】nexentNexent 是一个开源智能体SDK和平台能够将描述流程的自然语言转化为完整的多模态服务 —— 无需编排无需复杂拖拉拽。基于 MCP 工具生态系统构建Nexent 提供灵活的模型集成、可扩展的数据处理和强大的知识库管理。我们的目标很简单将数据、模型和工具整合到一个智能中心中让任何人都能轻松地将 Nexent 集成到项目中使日常工作流程更智能、更互联。项目地址https://gitcode.com/ModelEngine/nexent点击查看免费下载Nexent 平台不仅支持通过 A2A 协议、MCP 等方式接入外部资源还提供完整的导出与发布能力将平台内开发的 Agent 智能体交付给外部系统使用实现平台能力向企业 IT 架构的延伸。本文围绕 导出与发布指南 展开系统讲解 Agent 配置导出JSON/ZIP、普通发布北向 RESTful API与 A2A 1.0 发布三种方式的操作流程、协议细节与底层实现帮助读者将 Nexent Agent 无缝嵌入业务系统、自动化工作流与跨平台 Agent 协作场景。三种导出与发布方式总览Nexent 面向 Agent 资源提供三种交付方式覆盖离线迁移与在线集成两类场景资源类型方式说明适用场景Agent导出配置文件导出 JSON/ZIP 格式的 Agent 配置迁移 Agent 到其他 Nexent 环境Agent普通发布发布后提供北向 RESTful API与业务系统深度集成实现工作流自动化Agent发布为 A2A Agent将 Agent 暴露为 A2A 服务跨平台 Agent 协作、支持 A2A 协议的外部系统调用三种方式的核心差异在于交互方式与实时性方式交互方式实时性协议适用场景导出配置文件离线无—迁移、备份普通发布北向 API在线实时/流式RESTful API业务系统集成A2A 发布在线实时A2A 1.0REST JSON-RPC跨平台 Agent 协作从源码结构看三种方式对应三套独立的路由与服务模块导出/导入 API 位于 agent_app.py路由前缀/agent北向 RESTful API 位于 northbound_app.py路由前缀/nb/v1北向 A2A 端点位于 northbound_base_app.py路由前缀/nb/a2a三者可以组合使用例如一个已发布的 Agent 可同时开放北向 RESTful API 与 A2A 两种调用方式。方式一Agent 配置导出与导入JSON/ZIP导出适用于跨环境迁移、备份恢复与批量分发。操作路径为Agent 仓库 → 我的 Agent找到目标 Agent 后点击右侧「导出」按钮系统根据 Agent 是否携带技能包自动决定返回格式并触发下载。导出格式说明JSON仅包含 Agent 配置不附带技能包。核心字段包括name、version、model、promptrole/requirements/examples、tools如knowledge_base、mcp类型、skills、collaborators与memory分层记忆配置示例结构如下{ name: data-analyst, version: 1.0.0, model: gpt-4, prompt: { role: 你是一个专业的数据分析助手..., requirements: ..., examples: ... }, tools: [ { type: knowledge_base, name: kb_search }, { type: mcp, name: github-tools } ], skills: [ { name: csv-analyzer, params: {top_k: 5} } ], collaborators: [visualization-agent], memory: { type: layered, short_term: {}, long_term: {} } }ZIP包含agent.json配置文件与所有技能包适合完整迁移data-analyst.zip ├── agent.json # Agent 配置 └── skills/ ├── csv-analyzer/ │ ├── SKILL.md │ └── scripts/ │ └── analyze.py └── report-generator/ ├── SKILL.md └── assets/ └── template.md源码级实现原理ZIP 的生成逻辑可以在 management.py 的export_agent_with_skills_impl中确认导出前先通过collect_skill_zip_entries收集 Agent 关联的技能包若没有技能实例则直接返回纯 JSON dict若有则将agent.json与每个技能包base64 解码后的skills/{skill_name}.zip一起写入 ZIP 流并以{agent_name}.zip命名返回。值得注意的是系统 Agent 被明确禁止导出会抛出ForbiddenError。导入侧POST /agent/import见 agent_app.py同时接受纯 JSON和内嵌技能 ZIP两种请求若请求携带skills字段每个技能为 base64 编码的 ZIP 包则走import_agent_with_skills_impl否则走import_agent_impl。导入前会对每个 Agent 的工具参数逐一执行validate_import_tool_params校验当技能重名时返回 409 冲突其中包含skill_duplicate类型、重复技能名与冲突详情由调用方选择重命名或使用已有技能的解决方案。导入时的依赖处理导入时系统会检查 Agent 的依赖配置需要按下列方式逐项确认依赖类型处理方式模型检查是否已开通未开通需先配置知识库继承导入者权限检索范围受限于导入者权限MCP 服务检查是否已配置未配置需手动添加Skill自动导入技能包如 ZIP 中包含协作 Agent检查是否已存在需手动配置导入时还需注意同名 Agent 会提示修改名称知识库权限不会随导入继承这是设计行为导入者需确保目标环境有足够的知识库访问权限变量名需检查唯一性。对于名称冲突较多的场景可以选择两种导入方式之一直接导入保留重复名称导入后手动处理或重新生成调用 LLM 自动重命名 Agent。方式二普通发布北向 RESTful API普通发布将 Agent 发布为平台北向服务外部业务系统通过 HTTP 调用支持流式响应、附件上传、会话管理等能力适用于工作流自动化与业务系统深度集成。发布步骤与获取 API Key进入智能体开发页面创建或编辑 Agent完成配置并保存点击「发布」按钮在发布选项中确认默认发布不勾选 A2A确认发布后为调用方生成 API Key登录平台 →「个人信息」→「生成 API 密钥」→ 复制 Access Key。接口能力概览对话与聊天 API 覆盖会话的完整生命周期接口方法说明/nb/v1/chat/runPOST启动对话流式响应/nb/v1/chat/stop/{conversation_id}GET停止对话/nb/v1/chat/attachments/uploadPOST上传对话附件/nb/v1/conversationsGET列出对话/nb/v1/conversations/{conversation_id}GET获取对话历史/nb/v1/generate_titlePOST生成对话标题/nb/v1/conversations/{conversation_id}/titlePUT更新对话标题以上端点均挂载于 northbound_app.py 中prefix/nb/v1的 APIRouter与文档中的路径一一对应。完整的接口参数、请求/响应示例与错误码说明参见 调用 Agent 北向 API。启动对话请求参数与示例POST /nb/v1/chat/run的请求体参数如下参数类型必填说明agent_namestring是目标 Agent 名称querystring是用户输入内容conversation_idinteger否已有对话 ID不填则创建新对话attachmentsarray否附件列表S3 URL 或附件元数据对象model_idinteger否模型 ID覆盖 Agent 默认模型metadataobject否运行时元数据对 Agent 可见meta_dataobject否审计元数据仅记录不暴露给 Agenttool_paramsobject否工具参数覆盖请求头中Authorization: Bearer {access_key}与Content-Type: application/json必填Idempotency-Key可选用于防止重复提交。带附件与元数据的完整示例curl -X POST https://your-nexent-domain.com/nb/v1/chat/run \ -H Authorization: Bearer your-access-key-here \ -H Content-Type: application/json \ -d { agent_name: data-analyst, query: 请分析这份销售报告, attachments: [s3://nexent/attachments/user123/20260609_report.pdf], metadata: {project_id: P001, manager: Alice}, meta_data: {source: crm, ticket_id: INC-1001} }接口返回 Server-Sent EventsSSE流逐块返回 Agent 的思考过程与最终答案data: {type:model_output_thinking,content:正在分析数据,unit_index:1} data: {type:model_output_thinking,content:请稍候...,unit_index:1} data: {type:final_answer,content:分析完成,unit_index:2}tool_params单次请求级工具参数覆盖tool_params用于在单次请求中覆盖工具的默认参数其嵌套结构为agents → {agent_name} → tools → {tool_name} → {param_name: param_value}{ agents: { common_sense_qa_assistant: { tools: { analyze_text_file: { chunk_size: 4000, summary_only: true, prompt: 请提供简洁的摘要聚焦于核心要点 }, knowledge_base_search: { top_k: 10, rerank: true, rerank_model_name: gte-rerank-v2, index_names: [nexent-docs, faq-index] } } } } }参数合并遵循以下规则可在 northbound_app.py 的接口描述中确认优先级请求参数 数据库持久化参数ag_tool_instance_t.params工具匹配先按tool.name匹配再按tool.class_name匹配未知参数传入工具不支持的参数名将返回400 ValidationError元数据字段如vdb_core、embedding_model等会基于合并后的参数自动重新计算针对 KnowledgeBaseSearchTool、DifySearchTool、DataMateSearchTool 等工具。结构化反问人机交互的两种形态当 Agent 缺少关键信息时会返回结构化反问typehuman_interaction其content是直接包含schema_version: 1与questions数组的 JSON 对象紧随其后的普通final_answer则给出完整可读的问题回退data: {type:human_interaction,content:{schema_version:1,questions:[{id:audience,type:single_choice,title:通知发给谁,required:true,options:[{id:team,label:内部团队},{id:client,label:客户}],allow_other:true,placeholder:}]},unit_index:1} data: {type:final_answer,content:1. 通知发给谁\n - 内部团队\n - 客户\n - 其他 / Other,unit_index:2}questions最多 5 项支持text、single_choice、multiple_choice三种题型问题字段包括id、type、title、required、options、allow_other和placeholder选项使用id与label。文本题没有选项选择题提供 2–12 个选项。本轮通过普通完成流程结束并释放 worker客户端在收到流结束后把答案作为同一 conversation 的普通新 query 发送无需开关、待办查询或执行恢复接口curl -N https://your-nexent-domain.com/api/nb/v1/chat/run \ -H Authorization: Bearer ${NEXENT_API_KEY} \ -H Content-Type: application/json \ -d {conversation_id:123,agent_name:general-assistant,query:补充上一轮问题通知发给内部团队其他补充仅研发部门。}答案应包含选项文案以及用户填写的其他内容而不只是问题 ID 或选项 ID。旧 HITL 专属路由、审批、暂停续跑等机制已移除北向/chat/run若收到enable_hitl、hitl_run_id或hitl_after_event字段会明确返回400——即使字段为 false、null 或零也不能继续发送。这一逻辑在 model.py 的reject_legacy_agent_fields中实现并由/chat/run入口强制调用见 northbound_app.py。附件上传与会话管理调用/chat/run之前需先通过multipart/form-data上传附件支持多个同名字段filescurl -X POST https://your-nexent-domain.com/nb/v1/chat/attachments/upload \ -H Authorization: Bearer your-access-key-here \ -F filesreport.pdf \ -F filesdiagram.png响应返回可直接引用的 S3 URL{ files: [ { filename: report.pdf, s3_url: s3://nexent/attachments/user123/report.pdf, size: 1024000 }, { filename: diagram.png, s3_url: s3://nexent/attachments/user123/diagram.png, size: 524288 } ] }会话管理接口包括GET /nb/v1/conversations列出对话、GET /nb/v1/conversations/{conversation_id}获取消息历史、POST /nb/v1/generate_title传conversation_id与question自动生成标题、PUT /nb/v1/conversations/{conversation_id}/titletitle查询参数必填可选Idempotency-Key头。停止对话使用GET /nb/v1/chat/stop/{conversation_id}成功表示停止已受理若下一次发送收到X-Stream-Status: conflict该响应头由 run.py 在运行位置冲突时产生应保留用户输入并提示稍后再发送不要自动重试。认证机制与本地开发路径所有北向接口均需 Bearer Token 认证。在 northbound_app.py 的_get_northbound_context中可以看到完整链路先从Authorization头校验 Bearer Token再通过 access_key 查询user_token_info_t与user_tenant_t表解析出 user_id、tenant_id 与 token_id并据此做限流与用量记录——也就是说API Key 与用户/租户身份绑定调用权限随密钥走。本地开发与生产环境的路径前缀对照部署方式路径前缀Docker 部署http://localhost:5013/nb/v1Kubernetes 部署http://localhost:30013/nb/v1生产环境实际服务器域名或公网 IP方式三发布为 A2A AgentA2A 1.0将已发布的 Agent 进一步暴露为 A2A 服务供外部系统通过 A2A 1.0 协议发现并调用适用于跨平台 Agent 协作场景。发布时在发布选项中勾选「发布为 A2A Agent」即可。调用信息发布成功后系统显示如下信息信息项说明Endpoint IDA2A Agent 的唯一标识符Agent Card URLAgent 发现端点外部系统通过此地址获取 Agent 描述协议版本A2A 协议版本当前为 1.0REST 端点基于 REST 风格的 API 端点JSON-RPC 端点基于 JSON-RPC 2.0 协议的调用端点REST 调用示例# 获取 Agent Card发现端点 GET /nb/a2a/{endpoint_id}/.well-known/agent-card.json # 发送同步消息 POST /nb/a2a/{endpoint_id}/message:send Content-Type: application/json { message: { role: user, content: 请帮我分析这份销售数据 } } # 发送流式消息SSE POST /nb/a2a/{endpoint_id}/message:stream Content-Type: application/json { message: { role: user, content: 请帮我分析这份销售数据 } }JSON-RPC 2.0 调用示例POST /nb/a2a/{endpoint_id}/v1 Content-Type: application/json { jsonrpc: 2.0, method: SendMessage, params: { message: { role: user, content: 请帮我分析这份销售数据 } }, id: 1 }源码级实现原理A2A 北向端点定义在 northbound_base_app.py 的prefix/nb/a2a路由中与文档路径完全对应GET /{endpoint_id}/.well-known/agent-card.jsonL132-L172标准 A2A 1.0 发现端点。Agent Card 由A2AServerService.get_agent_card动态构建支持 ETag 条件请求与Cache-Control: public, max-age3600——这正是文档所述Agent Card 信息会被缓存、刷新间隔为 1 小时的实现依据如需立即更新需重新发布 AgentPOST /{endpoint_id}/v1L175-L239JSON-RPC 2.0 端点支持SendMessage同步、SendStreamingMessage返回 SSE与GetTask三个方法方法不存在时返回 JSON-RPC 标准错误码-32601POST /{endpoint_id}/message:send与message:streamL352-L450REST 风格端点分别同步等待任务完成与以 SSE 流式返回任务事件两者都通过_get_northbound_context完成 Bearer Token 认证Endpoint 未找到返回 404未启用返回 503GET /{endpoint_id}/tasks/{task_id}按 A2A 标准格式查询任务详情historyLength查询参数控制返回的历史消息条数-1 表示全部0 表示不返回。Agent Card 的supportedInterfaces数组由 a2a_server_service.py 的_build_supported_interfaces构造同时声明 JSON-RPC 与 HTTP-JSON 两种绑定均标注protocolVersion: 1.0。卡片的完整结构name、description、version、capabilities.streaming、provider、skills 等由_build_agent_card_base组装其中provider.organization默认为 Nexentskills 默认暴露一个 id 为chat的对话技能这些行为均有 test_a2a_server_service_agent_card.py 中的test_builds_complete_card、test_includes_default_modes等用例覆盖。A2A 协议相关的数据模型A2AMessage、A2ATask、A2AAgentCard、A2AServerSettings 等定义在 a2a_models.pyprotocolVersion默认值即1.0。版本管理Agent 可以发布多个版本每次发布生成一个新版本已发布的版本不可修改确保调用方获得一致的体验更新时修改 Agent 配置并发布新版本A2A 场景下外部系统可通过新版 Agent Card 获取更新Agent Card 缓存刷新间隔为 1 小时如需立即更新需要重新发布 Agent。常见问题普通发布和 A2A 发布可以同时开启吗可以。发布时既默认开放北向 RESTful API又勾选「发布为 A2A Agent」即可同时支持两种调用方式A2A 调用返回 401确认请求头中包含有效的Authorization字段且access_key正确如何更新已发布的 A2A Agent重新发布 Agent 版本更新后的信息会通过刷新后的 Agent Card 暴露。本地开发时Docker 部署将/nb/a2a替换为http://localhost:5013/nb/a2aKubernetes 部署替换为http://localhost:30013/nb/a2a生产环境替换为实际域名或公网 IP。安全考虑与最佳实践导出或发布资源时请关注以下安全事项考虑项说明建议敏感信息导出的配置可能包含 API Key 等敏感信息使用前检查并适当处理访问控制暴露的 API 需要认证保护仅授权可信系统访问数据安全外部调用可能访问敏感数据设置适当的数据权限策略审计追踪记录 API 调用日志便于审计启用日志记录和监控调用侧实践建议不要在代码中硬编码 API Key 并定期轮换仅授权可信系统访问调用端点启用调用日志便于审计注意数据隔离不要将敏感数据发送给不受控的调用方。从实现上看北向 API 的 Bearer 认证、限流LimitExceededError映射 429、以及PermissionError映射 403 等机制在 northbound_app.py 的异常处理中逐层落实测试覆盖见 test_northbound_app.py含test_run_chat_unauthorized、test_upload_chat_attachments_limit_exceeded等用例。生态互联与下一步通过 A2A 协议与北向 APINexent 可以与外部系统深度集成对接 ERP、CRM 等业务系统将 Agent 能力嵌入自动化流程并与其他平台的 Agent 协同工作。配套的接入方向通过 A2A 发现并调用第三方 Agent、配置安全凭据、建立 Agent 协作关系可参考 Agent 接入。根据实际需求选择对应指南继续深入Agent 智能体导出 — 导出与导入 Agent 配置文件JSON/ZIPAgent 智能体发布 — 普通发布北向 API与 A2A 发布的操作细节调用 Agent 北向 API — 北向 RESTful API 完整参考含 Python/JavaScript 完整示例智能体开发 — Agent 配置详解与 A2A 发布操作指南API 参考 — 完整的 API 接口参考。赞分享人工智能AI AgentAgent 编排低代码AI 技能RAG【免费下载链接】nexentNexent 是一个开源智能体SDK和平台能够将描述流程的自然语言转化为完整的多模态服务 —— 无需编排无需复杂拖拉拽。基于 MCP 工具生态系统构建Nexent 提供灵活的模型集成、可扩展的数据处理和强大的知识库管理。我们的目标很简单将数据、模型和工具整合到一个智能中心中让任何人都能轻松地将 Nexent 集成到项目中使日常工作流程更智能、更互联。项目地址https://gitcode.com/ModelEngine/nexent点击查看免费下载相关推荐Nexent 智能体导出与发布指南配置文件迁移、北向 RESTful API 与 A2A 1.0 跨平台协作Nexent 智能体导出与发布指南配置文件迁移、北向 RESTful API 与 A2A 1.0 跨平台协作 本文是 Nexent 平台「导出与发布inteAI AgentAI 应用后端前端大模型RAGNexent Agent 发布实战北向 RESTful API 与 A2A 1.0 双通道集成指南Nexent Agent 发布实战北向 RESTful API 与 A2A 1.0 双通道集成指南 Nexent 平台支持将开发完成的 Agent 智能体发布人工智能AI AgentAgent 编排低代码AI 技能RAGNexent Agent 发布实战北向 RESTful API 与 A2A 双通道集成指南Nexent Agent 发布实战北向 RESTful API 与 A2A 双通道集成指南 本指南讲解如何在 Nexent 零代码平台中把构建好的 AgentAI AgentAI 应用后端前端大模型RAG上一篇百度网盘直链解析工具5步实现高速下载的完整方案下一篇如何快速突破百度网盘限速5分钟掌握免费直链解析技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考