【Code With SOLO】用 TRAE SOLO 从零搭建企业级多智能体技能生成平台,让AI自动分析企业内部系统并生成可复用技能,在通过对话智能体实现多系统数据互通

正文 :

1. 摘要

用 TRAE SOLO 从零搭建了 Deep Agent AI —— 一个基于 DeepAgents SDK 的企业级多智能体平台。平台实现了 通用智能体 (办公助手)和 应用Skill智能体 (自动分析应用系统并生成可复用技能)的双智能体架构,支持流式对话、技能渐进式披露、自动登录认证、凭证加密隔离等企业级能力。核心亮点是 Skill 智能体能够:用户只需提供一个 URL,AI 即可自动获取页面源码、分析登录表单和功能接口、智能探索关联页面(探索页数自己控制)、增量式生成并保存技能,全程协作引导用户确认。

2. 背景

我是一名企业内部开发人员,日常需要对接多个内部系统(数据管理平台、项目管理平台等)。这些系统各有不同的登录方式和 API 接口,每次想让 AI 助手帮忙操作这些系统,都需要手动编写技能文件(SKILL.md),描述登录流程和接口定义,非常耗时。一个包含 35 个接口的 TAPD 技能,手动编写需要 2-3 小时。

我希望能让 AI 自己去"理解"这些系统,自动生成可复用的技能,这样就能快速将任何内部系统接入 AI 助手,实现自然语言操作业务系统。

3. 实践过程

第一步:搭建基础 Agent 架构

使用 TRAE SOLO,从零开始搭建基于 DeepAgents SDK 的 Agent 核心:

  • 任务拆解 :Agent 创建 → 工具注册 → 中间件集成 → 会话持久化 → 系统提示词设计
  • SOLO 能力使用 :利用 SOLO 的代码生成能力,快速生成 FastAPI 路由、Pydantic 模型、工具函数等基础代码框架
  • 关键 Prompt : “创建一个基于 DeepAgents SDK 的 Agent,集成 SkillsMiddleware 实现渐进式技能披露,使用 PostgresSaver 实现会话持久化”
    踩坑 :DeepAgents 的 create_deep_agent 需要同时传入 checkpointer 和 store ,否则会话无法跨重启恢复。最初只用了内存的 MemorySaver,重启后对话丢失,后来切换到 PostgreSQL 持久化。

第二步:实现技能系统和认证链路

技能系统是 Agent 的能力来源,认证链路是操作企业系统的前提:

  • 任务拆解 :SKILL.md 文件格式设计 → 技能管理器(CRUD)→ 渐进式披露中间件 → 登录执行器 → 凭证加密存储 → 权限缓存自动续期
  • SOLO 能力使用 :让 SOLO 参照 LangChain 工具定义规范,生成 @tool 装饰器包装的工具函数;参照现有 dm-login 技能格式,生成其他平台的登录技能
  • 关键 Prompt : “实现一个登录执行器,支持预处理步骤(如获取CSRF Token)、多种登录方式(表单/JSON)、多种成功条件判断,且敏感信息不暴露给大模型”
    踩坑 :企业系统的登录通常需要先 GET 登录页获取 CSRF Token,再 POST 登录接口。最初把 CSRF Token 硬编码在技能中,后来改为让大模型分析技能内容自动提取登录配置,实现了通用化。

第三步:实现多智能体切换和流式输出

这是本次最核心的功能升级:

  • 任务拆解 :

    1. 前端:左侧智能体切换栏 → 多智能体会话管理 → SSE 流式渲染 → 历史消息恢复
    2. 后端:流式聊天 API → agent_type 路由 → 历史消息 API
    3. Skill 智能体:专用工具集 → 系统提示词 → 增量式生成流程
  • SOLO 能力使用 :

    • 让 SOLO 生成 SSE 流式输出的完整实现(后端 StreamingResponse + 前端 ReadableStream)
    • 让 SOLO 设计 Skill 智能体的系统提示词,包含完整的交互工作流程
    • 让 SOLO 实现大页面 HTML 智能截取算法(提取表单/导航/API调用等关键片段)
  • 关键 Prompt :

    "在主页聊天框左侧增加一个智能体切换功能,点击不同智能体可切换聊天。
     新增一个应用Skill智能体,目的是给用户生成一个应用系统的skills。
     第一步引导用户输入URL,拿到源码后分析是否登录页面..."
    

踩坑 :

  1. 流式输出格式 :LangGraph 的 stream_mode=“messages” 返回的是 (message_chunk, metadata) 元组,不是直接的文本,需要正确解包
  2. 花括号转义 :系统提示词模板中使用 str.format() ,但模板中包含 {platform}-{function} 这样的非格式化花括号,导致 KeyError,需要转义为 {{platform}}-{{function}}
  3. 循环导入 : core.py 的 reload_agent 需要导入 skill_agent ,而 skill_agent 需要导入 core 的 create_volcengine_model ,通过函数内延迟导入解决

第四步:优化 Skill 智能体的交互体验

采纳了全部优化建议,让 Skill 智能体从"工具执行者"转变为"协作引导者":

优化项 实现方式 增量式生成 系统提示词引导Agent分阶段产出、逐步确认 自动验证 save_skill 内置接口可达性探测 智能去重 save_skill 内置冲突检测,提示合并/覆盖 协作引导 关键决策点让用户参与,先展示分析洞察再决策 防御性设计 覆盖7种异常场景处理策略 质量自检 save_skill 校验ID格式/名称/描述/必填字段 大页面截取 fetch_page_source 智能提取表单/导航/API调用

4. 成果展示

项目架构

┌──────────────────────────────────────────────────────┐
│                     前端 (index.html)                 │
│  ┌──────────┐  ┌──────────────────────────────────┐  │
│  │ 智能体    │  │         流式聊天区域              │  │
│  │ 切换栏    │  │   SSE实时渲染 + 光标动画          │  │
│  │ 🤖 通用  │  │                                  │  │
│  │ 🔧 Skill │  │                                  │  │
│  └──────────┘  └──────────────────────────────────┘  │
└──────────────────────────────────────────────────────┘
                              │
                    POST /api/chat/stream
                    {message, thread_id, agent_type}
                              │
                              ▼
┌──────────────────────────────────────────────────────┐
│              后端 (FastAPI + DeepAgents)              │
│                                                      │
│   agent_type="general"  →  通用智能体 (7个工具)       │
│   agent_type="skill"    →  Skill智能体 (8个工具)      │
│                                                      │
│   共享: PostgresSaver + PostgresStore + SkillManager  │
└──────────────────────────────────────────────────────┘

Skill 智能体交互流程

用户提供URL → fetch_page_source → 分析页面类型
    ├─ 登录页 → 生成登录Skill → 提示配置凭证 → 探索系统功能
    └─ 功能页 → 分析接口 → 用户确认 → 按模块分组生成Skill

核心功能截图说明

  • 智能体切换 :左侧深色侧边栏,支持通用/Skill双智能体切换,切换时保留各自聊天记录

  • 流式输出 :AI回复实时渲染,带闪烁光标动画,体验类似 ChatGPT
  • 技能管理 :卡片式展示,支持AI一键生成完整技能定义

  • 凭证配置 :密码AES加密存储,按用户+平台隔离

技术栈

层级 技术 AI SDK DeepAgents + LangChain + LangGraph 大模型 火山引擎 Doubao(OpenAI兼容接口) Web框架 FastAPI + Uvicorn 持久化 PostgreSQL(会话+记忆+业务数据) 认证 Fernet/AES加密 + bcrypt哈希 前端 原生HTML/CSS/JS + SSE流式

5. 效果与总结

提效效果

场景 传统方式 使用Skill智能体 提效 生成35个接口的TAPD技能 手动编写2-3小时 提供URL,AI自动分析5分钟 90%+ 生成登录技能 手动分析登录流程30分钟 AI自动识别表单+CSRF,1分钟 95%+ 新系统接入 编写技能+配置凭证1小时 提供URL,AI全流程引导10分钟 80%+

SOLO 在流程中做了什么

  1. 代码生成 :从零生成了整个项目的基础架构,包括 FastAPI 路由、Pydantic 模型、工具函数
  2. 架构设计 :帮助设计多智能体架构、流式输出方案、会话隔离策略
  3. 问题排查 :快速定位花括号转义、循环导入、流式格式等技术问题
  4. 优化建议 :主动提出增量式生成、质量自检、智能去重等优化方案

可复用方法

  1. 双智能体架构模式 :通用智能体 + 专用智能体,共享基础设施但独立工具集和提示词,可扩展到更多垂直场景
  2. 增量式生成 + 协作引导 :AI 不再一次性完成所有步骤,而是分阶段产出、逐步确认,用户始终掌控方向
  3. 技能即代码(Skill as Code) :用 SKILL.md 文件定义 AI 的能力,支持版本管理和热更新
  4. 敏感信息隔离模式 :凭证在工具内部获取和使用,永不暴露给大模型,确保企业安全

目前该项目落地价值有很多,比如tapd产品提需求,根据需求进行分析,调用gitlab理解代码,反向补充需求,然后进行研发设计,功能拆分,代码关键点示例、调用企业wiki平台查询相关测试示例,生成测试案例,复核代码提交质量等等。
一个平台skill及子agent, 一套流程一个skill,后面还有个数字人汇报工作的skill还需要开发。
有更多想法的同僚可以聊聊。

后面核心代码我整理整理抽空评论区放一放,睡了明天还要带娃

1 个赞