Skip to content

完善 AI Agent 模式:支持通过对话创建和管理对象 #1056

Description

@hotlong

背景

当前服务端已实现完整的 Agent 模式架构(Agent → Skill → Tool),包括 tool-calling 循环、ToolRegistry、AgentRuntime 等核心组件。元数据操作工具(create_object、add_field、modify_field、delete_field)也已实现,但尚未串联到可用的 Agent 和前端 UI 中。

用户期望能通过 AI 对话直接创建对象、添加字段等元数据操作。

当前状态

组件 状态 说明
服务端 chatWithTools 循环 已完成 AIService.chatWithTools() 支持多轮工具调用
元数据工具 已完成 create_object、add_field、modify_field、delete_field 等
数据查询工具 已完成 list_objects、query_records 等
默认 Agent 绑定 不完整 data_chat agent 仅绑定查询工具,未绑定元数据工具
前端工具调用展示 缺失 Chat 面板无法展示工具调用过程和结果
操作确认机制 缺失 requiresConfirmation 字段已定义但前端未实现

需要完成的工作

1. 创建或增强 Agent 绑定元数据工具

  • 创建新的 metadata_assistant agent,或增强现有 data_chat agent
  • 绑定元数据操作工具:create_object、add_field、modify_field、delete_field、list_metadata_objects、describe_metadata_object
  • 设计合适的 system prompt 引导 AI 正确使用这些工具

2. 前端展示工具调用过程

  • 在 AiChatPanel 中渲染工具调用状态(调用中、成功、失败)
  • 展示工具调用的参数和返回结果(如:正在创建对象 contracts...)
  • 支持 Vercel AI SDK 的 tool-call / tool-result stream parts

3. 实现操作确认机制

  • 对标记 requiresConfirmation: true 的工具(如 create_object、delete_field),在执行前弹出确认
  • 前端展示即将执行的操作详情,用户确认后再执行
  • 支持取消操作

相关文件

  • Agent 定义:packages/services/service-ai/src/agents/data-chat-agent.ts
  • 元数据工具:packages/services/service-ai/src/tools/metadata-tools.ts
  • 前端面板:apps/studio/src/components/AiChatPanel.tsx
  • 工具注册:packages/services/service-ai/src/tools/tool-registry.ts
  • Agent 路由:packages/services/service-ai/src/routes/agent-routes.ts
  • 流编码器:packages/services/service-ai/src/stream/vercel-stream-encoder.ts

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions