Lowdefy v5.3 实战:用 30 行 YAML 搭建一个 AI Agent
Lowdefy 是一个开源的 YAML 配置驱动的低代码框架,自 2020 年以来已有近 3000 颗 GitHub Stars。最新发布的 v5.3 版本带来了一个重要的新能力——AI Agent。你不需要写任何 Python 或 JavaScript,只需几十行 YAML 就可以定义出一个能调用你后端 API 作为工具的 AI Agent。
这不是又一个 AI wrapper。Lowdefy 本身就是一个完整的前后端框架——你可以把已有的 CRUD 界面、仪表盘、工作流和 AI Agent 放在同一个配置文件中管理。Agent 所做的决策,可以实时响应到页面上的状态、按钮和数据。
快速体验
创建一个 agent-demo.yaml:
lowdefy: 4.5.0
pages:
- id: agent
type: PageHeaderMenu
events:
onEnter:
- id: ask_llm
type: Request
params:
url: https://api.lowdefy.com/v1/agents/chat
method: POST
blocks:
- id: chat_input
type: InputTextArea
properties:
placeholder: 输入你的需求...
rows: 3
- id: send_btn
type: Button
properties:
title: 发送
events:
onClick:
- id: call_agent
type: Request
params:
url: https://api.lowdefy.com/v1/agents/lowdefy-agent
method: POST
body:
prompt:
_state: chat_input.value
启动:
npx lowdefy@latest dev agent-demo.yaml
打开 http://localhost:3000,你会看到一个聊天界面。输入”查询上个月的销售数据并按区域汇总”,Agent 会调用你定义的工具来执行查询并返回结果。
核心概念:Agent 定义
在 Lowdefy v5.3 中,一个 Agent 在 lowdefy.yaml 的 agents 段定义:
lowdefy: 4.5.0
config:
agents:
lowdefy-agent:
type: OpenAI
options:
model: gpt-4o
systemPrompt: |
你是一个数据分析助手。
根据用户的问题调用相应的工具。
始终用中文回复。
tools:
- type: Request
id: query_sales
properties:
method: POST
url: https://api.example.com/sales/query
body:
region:
_state: selected_region
- type: Request
id: get_regions
properties:
method: GET
url: https://api.example.com/regions
每个 Agent 需要三个部分:LLM 配置(模型、System Prompt)、工具列表(可复用的 API 调用定义)、以及人机交互界面(页面布局用标准 Lowdefy 组件)。
实战:构建一个项目进度助手
假设你有一个项目管理 API,让我们构建一个 Agent 来查询任务状态、分配负责人。
第一步:定义数据源
lowdefy: 4.5.0
connections:
- id: project_api
type: AxiosHttp
properties:
baseURL: https://api.example.com/v2
headers:
Authorization: Bearer ${PROJECT_API_KEY}
第二步:定义 Agent 和工具
config:
agents:
project-agent:
type: OpenAI
options:
model: gpt-4o-mini
temperature: 0.3
systemPrompt: |
你是项目助手,负责管理任务和里程碑。
可用工具:
- search_tasks: 按关键词搜索任务
- get_task_detail: 获取单个任务详情
- assign_task: 分配任务给成员
- get_milestones: 查询项目里程碑进度
每次使用工具后向用户说明结果。
tools:
- type: Request
id: search_tasks
properties:
method: POST
url: /tasks/search
body:
keyword:
_user: prompt
- type: Request
id: get_task_detail
properties:
method: GET
url:
_payload: /tasks/${id}
- type: Request
id: assign_task
properties:
method: PATCH
url:
_payload: /tasks/${taskId}
body:
assignee:
_user: assignee
- type: Request
id: get_milestones
properties:
method: GET
url: /milestones
这里的关键设计是 _user 和 _payload 变量——Agent 在执行工具调用时会自动从对话中提取参数值填充到这些位置。
第三步:创建 Agent 页面
pages:
- id: project
type: PageHeaderMenu
properties:
title: 项目助手
blocks:
- id: header
type: Title
properties:
content: AI 项目助手
level: 2
- id: agent_chat
type: AgentChat
properties:
agentId: project-agent
placeholder: 例如:搜索与"登录模块"相关的任务
welcomeMessage: |
你好!我是项目助手。你可以:
- 搜索任务:"有哪些未完成的 bug 修复任务?"
- 查看详情:"查看 TASK-123 的详情"
- 分配任务:"把 TASK-456 分配给张三"
- 查看进度:"当前里程碑完成情况如何?"
- id: results_table
type: Table
properties:
columns:
- field: id
title: 任务 ID
- field: title
title: 标题
- field: status
title: 状态
- field: assignee
title: 负责人
- field: priority
title: 优先级
events:
onAgentResult:
- id: update_table
type: SetState
params:
results:
_agent: lastResult
AgentChat 是 v5.3 新增的组件,专门用于 AI Agent 的对话交互。它支持自动将 Agent 的决策结果映射到页面其他组件——比如上例中,Agent 查到的任务列表会实时更新到 Table 组件中。
更高级的用法:工具审批流
对于涉及修改数据的敏感操作,Lowdefy v5.3 支持工具调用确认机制:
config:
agents:
project-agent:
options:
requireConfirmation: true
confirmationPrompt: |
确认执行以下操作:
工具:{{toolName}}
参数:{{toolParams}}
tools:
- type: Request
id: delete_task
requireConfirmation: auto
properties:
method: DELETE
url:
_payload: /tasks/${id}
当 Agent 决定调用 delete_task 时,会先弹出一个确认对话框,用户可以选择允许或拒绝。requireConfirmation 可以设为 true(全部确认)、false(全部自动)或 auto(高风险操作确认,低风险直接执行)。
部署
Lowdefy 应用可以部署到任何 Node.js 环境:
npx lowdefy@latest build npx lowdefy@latest start docker run -p 3000:3000 \ -v ./lowdefy.yaml:/app/lowdefy.yaml \ lowdefy/lowdefy:latest
环境变量(如 OPENAI_API_KEY、PROJECT_API_KEY)通过 .env 文件或系统环境变量配置,不会提交到代码仓库。
为什么选择 Lowdefy 而非纯代码方案?
| 维度 | Lowdefy v5.3 | 纯代码 (LangChain + FastAPI) |
|---|---|---|
| 学习成本 | YAML 基础即可 | 需掌握 Python/Node + 框架 API |
| 开发速度 | 30 行 YAML = 一个可用 Agent | 至少 200 行样板代码 |
| 前端界面 | 内置 50+ 组件(Table/Form/Chart) | 需额外开发前端 |
| 工具管理 | YAML 配置即插即用 | 需手动注册和映射 |
| 部署 | 单文件 + Docker 一行命令 | 需配置前后端分离部署 |
当然,Lowdefy 更适合中等复杂度的内部工具和原型。如果你的 Agent 需要高度定制的逻辑(如多 Agent 协作、复杂的状态机),LangChain 等框架的灵活性更强。
小结
Lowdefy v5.3 的 AI Agent 特性让开发者可以用极低的成本把一个 YAML 文件变成完整的 AI 交互应用。对团队来说,这意味着:
- 产品经理可以看懂和修改 Agent 的行为定义
- 后端 API 无需改造即可成为 Agent 工具
- 一个配置文件同时管理 UI 和 Agent 逻辑
如果你已经在维护一套 Lowdefy 应用,升级到 v5.3 并在现有页面上加一个 AgentChat 组件只需要 10 分钟。如果你从未接触过 Lowdefy,花半小时跑通上面的示例,你会对”配置即应用”的开发方式有全新的认识。
项目地址:github.com/lowdefy/lowdefy(2968 stars | MIT 协议) 官方文档:lowdefy.com Agent 文档:lowdefy.com/articles/lowdefy-agents