Zing 论坛

正文

Jido Phoenix:实时Web界面与AI代理框架的深度融合实践

jido_phx是一个展示Jido代理框架能力的Phoenix LiveView应用,通过信号驱动的代理架构实现实时UI同步和LLM驱动的人机协作工作流,为构建交互式AI应用提供了优秀范例。

Jido框架Phoenix LiveViewAI代理实时协作人机工作流Elixir信号驱动状态机LLM工作流
发布时间 2026/04/29 06:44最近活动 2026/04/29 06:50预计阅读 5 分钟
Jido Phoenix:实时Web界面与AI代理框架的深度融合实践
1

章节 01

导读 / 主楼:Jido Phoenix:实时Web界面与AI代理框架的深度融合实践

Jido Phoenix:实时Web界面与AI代理框架的深度融合实践

背景:AI代理需要什么样的界面?

当前大多数AI代理以命令行或API形式存在,用户通过文本提示与它们交互,等待响应,然后继续下一轮对话。这种模式对于简单任务尚可,但对于复杂工作流——如多步骤审批、人机协作创作——就显得力不从心。

我们需要的是能够实时反映代理状态、支持人机协作、可视化工作流的界面。这正是jido_phx项目试图展示的:如何将AI代理框架与实时Web技术深度融合。

项目概览

jido_phx是一个基于Phoenix LiveView的应用程序,演示了Jido代理框架的核心能力。它包含两个主要示例:

  1. 实时计数器:展示信号路由和状态管理
  2. PRD生成工作流:展示多代理协作和人机审批流程

技术栈

层级 技术选择
Web框架 Phoenix 1.8 + Phoenix LiveView 1.1
代理框架 Jido 2.0
LLM客户端 req_llm 1.0
数据库 PostgreSQL via Ecto
前端样式 Tailwind CSS
构建工具 esbuild
HTTP服务器 Bandit

这个技术栈体现了Elixir生态系统的现代最佳实践。

核心概念:信号驱动的代理

Jido框架的核心抽象是"信号"(Signal)。代理不直接响应函数调用,而是通过发送和接收信号来协调。这种模式带来了几个优势:

松耦合

代理之间不直接依赖,而是通过信号总线通信。新增代理或修改现有代理不会影响其他组件。

可观察性

所有信号流都是可追踪的,便于调试和审计。系统可以记录完整的信号历史,重现代理决策过程。

实时同步

Phoenix PubSub让信号变化能够即时推送到所有连接的客户端,实现真正的实时协作。

示例一:实时计数器

这个简单示例演示了核心机制:

信号路由:
- counter.increment → 增加计数
- counter.decrement → 减少计数
- counter.reset → 重置计数

关键设计:状态由代理管理,而非LiveView。这意味着:

  1. 多标签页同步:在一个浏览器标签页操作,其他标签页自动更新
  2. 状态持久化:页面刷新后状态保留
  3. 可扩展性:可以在服务器端添加更多代理处理复杂逻辑

示例二:PRD生成工作流

这是项目的重头戏——一个完整的人机协作流程,使用三个代理协同生成产品需求文档(PRD)和技术规范:

代理架构

CoordinatorAgent(协调者)
├── ProductManagerAgent(产品经理)→ 通过LLM生成PRD
└── TechnicalLeadAgent(技术负责人)→ 通过LLM生成技术规范

状态机设计

工作流采用严格的状态机管理:

idle(空闲)
 └─ pipeline.start ──→ awaiting_prd(等待PRD)
   └─ prd.review_requested ──→ awaiting_prd_review(等待PRD审核)
     ├─ prd.approved ──→ awaiting_spec(等待技术规范)
     │   └─ spec.review_requested ──→ awaiting_spec_review(等待规范审核)
     │     ├─ spec.approved ──→ complete(完成)
     │     └─ spec.rejected ──→ awaiting_spec(规范修订)
     └─ prd.rejected ──→ awaiting_prd(PRD修订)

人机协作的关键设计

每个审核步骤都需要显式的人类批准或拒绝(附带反馈)。这体现了负责任的人机协作原则:

  • AI负责生成初稿和迭代修改
  • 人类负责质量把控和方向决策
  • 系统记录完整的决策历史

生成的文档可以从UI直接下载,方便后续使用。

为什么这很重要?

从聊天到工作流

传统的AI交互是"问-答"模式,而jido_phx展示的是"工作流"模式:

  • 多步骤、有状态的流程
  • 明确的人机分工
  • 可追踪、可审计的执行历史

实时协作的基础

通过PubSub实现的实时同步,为多人协作场景奠定了基础。想象一个团队同时审查AI生成的PRD,每个人的反馈都即时可见。

生产就绪的示范

项目使用成熟的Elixir技术栈,包含完整的测试套件(mix test)和预提交检查(mix precommit),展示了如何将AI代理集成到严肃的生产系统中。

快速体验

# 克隆仓库
git clone https://github.com/johnwesonga/jido_phx.git
cd jido_phx

# 安装依赖、创建数据库、构建资源
mix setup

# 启动服务器
mix phx.server
# 或在IEx中启动
iex -S mix phx.server

访问 http://localhost:4000 即可体验。

Jido框架的设计哲学

从jido_phx可以窥见Jido框架的核心理念:

  1. 信号优先:一切通信通过信号,确保松耦合和可观察性
  2. 状态隔离:代理管理自己的状态,不依赖外部系统
  3. 人机协作:设计时就考虑人类参与,而非事后补救
  4. 实时原生:利用Elixir/OTP的并发能力实现真正的实时体验

应用场景展望

基于jido_phx的架构,可以构建:

智能客服系统

AI代理处理常见问题,复杂问题升级给人工客服,状态实时同步到所有客户端。

内容审核工作流

AI初筛内容,人工复核可疑项,多人协作审核,完整记录审核历史。

代码审查助手

AI代理分析代码变更,生成审查意见,人类审查员批准或修改,最终合并决策。

创意协作平台

多个AI代理分别负责头脑风暴、结构梳理、文案撰写,人类创作者在关键节点介入指导。

结语

jido_phx虽然是一个演示项目,但它展示了AI代理与Web界面深度融合的可能性。在AI能力日益强大的今天,如何设计人机协作的界面和工作流,将成为产品竞争力的关键 differentiate因素。

Jido框架的信号驱动架构和Phoenix LiveView的实时能力相结合,为这一领域提供了一个优雅的技术方案。对于Elixir开发者和对AI工作流感兴趣的工程师来说,这是一个值得深入研究的范例。