ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何在QVerisFlow中编写第一个自定义Agent:YAML声明式配置手册

如何在QVerisFlow中编写第一个自定义Agent:YAML声明式配置手册 【免费下载链接】QVerisFlowAutomatic multi-agent workflow generation, fully integrated with QVeris unified data and tool layer项目地址https://gitcode.com/gh_mirrors/qv/QVerisFlow点击查看免费下载QVerisFlow 是一个基于 LangGraph 的开源多智能体Multi-Agent工作流框架与 QVeris 统一数据工具层深度集成。本文将手把手教你用YAML 声明式配置编写第一个自定义 Agent——无需手写 Python 代码一个配置文件就能定义角色、Prompt、模型参数和工具能力10 分钟即可跑通。 为什么选择 YAML 声明式配置对比维度代码定义YAML 声明式配置上手难度需要熟悉 Pydantic 模型只需会写 YAML修改 Prompt改代码 重新部署改一行文本即可版本管理代码 diff纯文本Git 友好批量注册逐个实例化支持整个目录一键注册QVerisFlow 的 Agent 定义采用三层 Prompt 结构背景指令 输出指令 用户指令设计声明式配置会由 Pydantic 模型自动校验字段写错时会立即报错提示而不是在运行时才暴露问题。完整的设计说明见官方文档docs/overall_design/02_definitions.md核心数据结构源码在 src/definitions/agent_definition.py。✅ 动手准备3 步完成环境安装# 1. 克隆仓库 git clone https://gitcode.com/gh_mirrors/qv/QVerisFlow cd QVerisFlow # 2. 安装依赖推荐 uv uv sync # 3. 配置模型 API Key # 编辑 config/app_config.yaml填入你的 LLM 密钥模型配置集中在 config/app_config.yaml支持 Qwen、DeepSeek、GLM、Kimi、Claude 等多种模型。你只需在对应模型下填写api_key例如models: qwen-plus: api_key: ${QWEN_API_KEY:} model_name: qwen-plus Agent 配置中的model_name必须对应这里models:下的某个键名写错会导致模型加载失败。 Agent YAML 文件完整骨架字段速查表一个完整的自定义 Agent 由 6 个区块组成。下面以官方最简示例 examples/agents/simple_analyst.yaml 为蓝本逐一拆解。agent_id: my_agent # 唯一标识必填 name: 我的Agent # 技术名称必填 description: 一句话描述这个 Agent 做什么 version: 1.0.0 execution_type: executor # 执行类型 domain_type: general # 领域类型 background_instruction: { ... } # 第一层角色设定 output_instruction: { ... } # 第二层输出格式 user_instruction: { ... } # 第三层具体任务 llm_config: { ... } # 模型参数 tool_references: [ ... ] # 工具能力 tags: [my, agent] # 标签便于检索 H3 · 基本信息与执行类型字段说明示例agent_id全局唯一标识工作流通过它引用 Agentfinancial_analyst_v1execution_type决定执行策略共 6 种executordomain_type业务领域共 8 种financial_analysis执行类型怎么选完整枚举定义见 src/definitions/agent_definition.py#L78-L91执行类型适用场景executor快速执行、直接输出适合大多数简单任务reasoning_executor需要深度推理使用思维链CoTdeep_search多轮搜索、信息聚合flow_agent工作流编排型 Agenthtml_generator/markdown_generator文档生成新手建议简单任务用executor复杂分析任务用reasoning_executor。 H3 · 三层 Prompt 结构核心三层结构源码定义在 src/definitions/prompt_structure.py运行时按「背景 → 输出 → 用户」顺序拼装成完整 Prompt。第一层background_instruction给 Agent 立人设background_instruction: role_description: | 你是一位专业的金融分析师。 你的分析风格客观、专业。 core_capability: | 你的核心能力包括 - 基础财务分析 - 估值评估 - 风险识别 task_context: | 在本任务中你需要对目标公司进行 简要的投资价值评估。三个子字段各司其职role_description你是谁、core_capability你会什么、task_context这次要干什么。第二层output_instruction锁定输出格式output_instruction: format_type: json format_requirements: - 输出标准 JSON 格式 - 不要使用 markdown 代码块包裹 style_requirements: - 语言简洁、专业 - 结论明确 output_schema: # 可选用 JSON Schema 严格约束输出结构 type: object required: [company_name, summary, recommendation] properties: recommendation: type: string enum: [买入, 持有, 卖出]⭐output_schema是保证输出可被下游程序稳定消费的关键推荐始终定义。第三层user_instruction下达具体任务user_instruction: task_description: | 请对目标公司进行简要的投资分析并给出投资建议。 tool_references: # 用 别名 引用工具 - file_read - qveris_search_tools context_references: [] # 用 #名称 引用上游节点的上下文框架内置了工具名与#上下文名两种引用语法运行时由解析器自动替换为真实的工具描述和上游数据实现声明式的数据流转。 H3 · 模型配置 llm_configllm_config: model_name: qwen-plus # 对应 app_config.yaml 中 models 的键名 temperature: 0.3 # 创造性数据分析建议 0.1~0.3 max_tokens: 2048 max_iterations: 3 # 最大迭代次数深度搜索等场景用默认值定义见 src/definitions/agent_definition.py#L105-L114不写也会自动生效。️ H3 · 工具引用 tool_references让 Agent 拥有超能力每个工具引用的结构为源码src/definitions/tool_definition.py#L64-L73tool_references: - tool_id: file_read alias: 读取文件 # 别名供 user_instruction 引用 tool_type: builtin # 工具类型 enabled: truetool_type常用取值类型说明builtin框架内置工具如file_read、file_write、bashqverisQVeris 远程工具动态搜索并执行互联网工具custom/mcp/external_api自定义、MCP 协议、外部 API 工具QVerisFlow 与 QVeris 数据工具层的集成是它的亮点加上qveris_search_toolsqveris_execute_tool两个远程工具后Agent 就能用自然语言搜索并调用互联网上的数据工具无需为每个数据源单独写接口- tool_id: qveris_search_tools alias: 搜索远程工具 tool_type: qveris enabled: true - tool_id: qveris_execute_tool alias: 执行远程工具 tool_type: qveris enabled: true完整写法可参考带 QVeris 工具集成的 examples/agents/data_collector.yaml。✍️ 跟练写出你的第一个自定义 Agent按上面的骨架把 6 个区块填完。以「简单分析师」为例完整文件examples/agents/simple_analyst.yaml定身份agent_id: simple_analystexecution_type: executor立人设在background_instruction中写清角色、能力、任务背景锁输出output_instruction中定义 JSON Schema确保输出可解析派任务user_instruction.task_description用自然语言描述分析要点配模型llm_config.model_name选一个已配置好 Key 的模型给工具tool_references挂上文件读写和 QVeris 远程工具 一个容易踩的坑user_instruction.tool_references里的别名必须与顶层tool_references中的alias一一对应否则工具不会被注入到 Prompt。▶️ 加载并运行你的 Agent写好的 YAML 有两种运行方式。方式一一行代码加载推荐验证用from src.definitions import AgentDefinition agent_def AgentDefinition.from_yaml_file(examples/agents/simple_analyst.yaml) print(agent_def.build_system_prompt()) # 预览拼装后的完整 Promptfrom_yaml_file会自动做 Pydantic 校验字段缺失或类型错误会立刻抛出明确异常源码src/definitions/agent_definition.py#L248-L266。方式二注册到 Agent 注册表供工作流调度from src.registry import AgentRegistry registry AgentRegistry.get_default() registry.register_from_yaml(examples/agents) # 整个目录批量注册 agent registry.create_agent(simple_analyst) # 按 agent_id 实例化 result await agent.run(task_description分析目标公司)AgentRegistry 支持按领域、执行类型、标签三种维度检索 Agent是工作流引擎调度 Agent 的入口。完整可运行的示例见 examples/simple_agent.pyuv run python examples/simple_agent.py -q 请分析人工智能行业的趋势 让 Agent 进入多智能体工作流单个 Agent 写好之后真正的威力在于组合。在 examples/workflows/analysis_workflow.yaml 中你可以看到agent_id如何把自定义 Agent 挂载为工作流节点- node_id: financial_analysis node_type: agent agent_id: financial_analyst_v1 # 引用你写的 Agent dependencies: [collect_data] input_mappings: # 声明式数据流转 - source_node: collect_data source_field: output.data target_field: input.financial_data数据收集器 → 金融分析师 → 报告生成器三个 YAML 定义的 Agent 串成一条完整的分析流水线。 常见坑与最佳实践问题解决建议model_name加载失败检查是否与 config/app_config.yaml 中models:的键名完全一致输出格式不稳定在output_instruction中定义output_schema并加不要使用 markdown 代码块包裹的格式要求工具没被调用确认别名在user_instruction.tool_references中被显式列出分析类 Agent 结论跳跃将execution_type改为reasoning_executor并调低temperature需要上游数据使用context_references的#节点名引用而非让 LLM 猜测最佳实践清单✅ 每个 Agent 聚焦单一职责收集、分析、报告分开写✅agent_id用语义化命名并带版本后缀如financial_analyst_v1✅ 用tags标记用途方便注册表检索与 A/B 测试✅ 复杂 Agent 可参考完整范例 examples/agents/financial_analyst.yaml含深度推理 QVeris 工具链 小结回顾一下编写第一个自定义 Agent 的完整路径配置好 config/app_config.yaml 中的模型密钥按「基本信息 → 三层 Prompt → 模型配置 → 工具引用」骨架编写 YAML用from_yaml_file加载验证或register_from_yaml批量注册在工作流中通过agent_id组合成多智能体流水线YAML 声明式配置让 Agent 的开发像填表一样简单而这正是 QVerisFlow 多智能体工作流自动生成的基石——掌握它你就拥有了构建复杂 AI 工作流的第一块拼图。赞分享【免费下载链接】QVerisFlowAutomatic multi-agent workflow generation, fully integrated with QVeris unified data and tool layer项目地址https://gitcode.com/gh_mirrors/qv/QVerisFlow点击查看免费下载相关推荐PHP CS Fixer 扩展开发教程手把手编写并注册你的第一个自定义FixerPHP CS Fixer 扩展开发教程手把手编写并注册你的第一个自定义Fixer PHP CS Fixer 是一个自动修复 PHP 代码风格问题的开源工具而开发工具代码质量静态分析Lint格式化QVerisFlow多模型配置完全手册如何接入Qwen、DeepSeek和GPTQVerisFlow多模型配置完全手册如何接入Qwen、DeepSeek和GPT QVerisFlow 是一个自动化的多智能体工作流生成框架与 QVeris如何为Boop编写自定义脚本从零开始创建你的第一个脚本如何为Boop编写自定义脚本从零开始创建你的第一个脚本 Boop是一款功能强大的开发者便签工具让你能够通过编写自定义脚本轻松扩展文本处理功能。无论你是想要实开发工具桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进