Repository navigation
Releases
Releases · bammt/XuanShu-Agent
2.0
本次更新
自然语言编排与画布
- 改进自然语言编排的阶段流转、确认信息和草稿恢复,普通问候不会误启动应用生成。
- 新建且尚未生成应用的会话默认打开自然语言编排窗口;较长的编排聊天记录支持滚动加载更早消息。
- 增强 Agent、Task、Crew、Router、Code、Tool 和审批节点编辑,支持明确的输入绑定、变量选择和结构化输出定义。
- 校验 Flow 的依赖与路由条件,阻止无效变量引用和循环依赖。
- Skill、Tool 与知识库按编排需求绑定到相应 Agent,不因应用选择了某种能力就自动绑定到所有 Agent。
多轮运行与文件交付
- 持久化会话历史、节点检查点、等待输入和审批状态;恢复执行时保留已完成节点的结果。
- 运行界面改进 SSE 事件处理、节点和 Agent 状态、输出展示、重试状态及文件交付信息。
- 只允许重试对话最新一轮。历史运行的重试接口会返回
409,避免重放过期输入快照或覆盖较新的会话状态。 - 修正交互节点提示规则:遵循用户已给出的答复、明确授权的默认值及留空要求,减少对已确认信息的重复追问。
- 增强文档和表格读取、生成文件识别及附件在多轮会话中的处理。
API 与接入文档
- 公开运行 API 支持
blocking、streaming和async三种响应模式。blocking为默认值,等待本轮完成或暂停后返回;可用wait_timeout_seconds设置等待时间。 - 流式运行返回更完整的运行事件和最终结果;异步模式返回运行 ID 与事件地址。
- API 调用必须提供稳定的
user_id。后续轮次通过请求 JSON 顶层的conversation_id延续会话;运行id不能代替会话 ID。 - 文件上传要求提供用户身份,并可在保留期限内由同一用户在后续请求中复用。
- 更新 API 文档与界面示例,说明多轮请求、响应模式、事件续传和文件下载方式。
部署与维护
- 加入 Alembic 数据库迁移,并在服务初始化时执行迁移。
- Executor 的内存、CPU 和进程数限制可通过
.env配置;新增运行超时配置。 - 容器默认不生成 Python 字节码缓存,减少运行时缓存文件。
API 兼容性
- 公开运行 API 现在默认采用
blocking;原先依赖立即收到排队结果的客户端需显式设置"response_mode": "async"。 - API 调用必须传入稳定的
user_id。多轮请求使用响应中的conversation_id,放在后续请求 JSON 顶层。 wait_timeout_seconds只限制 HTTP 等待时间;到达上限后后台运行会继续,可通过状态接口或事件流读取结果。
升级说明
-
升级前备份项目
data/和.env。保留原有ENCRYPTION_KEY,否则已保存的模型密钥和连接凭据可能无法解密。 -
将新版本的
.env.example与现有.env对照,补充RUN_TIMEOUT_SECONDS、EXECUTOR_MEMORY_LIMIT、EXECUTOR_CPU_LIMIT和EXECUTOR_PIDS_LIMIT等新配置。资源限制有默认值,也可按部署容量调整。 -
重新构建并启动服务,让
schema-init应用数据库迁移:docker compose up -d --build docker compose ps
-
使用开发配置时:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --build
-
旧 API 客户端如果依赖 POST 后立即收到
queued,请设置"response_mode": "async"。需要等待生成结果的调用可使用默认blocking;处理多轮会话时,将响应中的conversation_id放到后续请求 JSON 顶层,并继续使用相同的user_id。
本次更新沿用上一版项目根目录下的 data/ 绑定挂载布局,不需要把数据迁移到 Docker 命名卷。升级时不要删除 data/ 或执行会清除数据卷的命令。
修复问题
v1.0 正式版更新
1.支持.xlsx文件解析
2.修复智能体与用户交互时候的若干bugs
3.能力名称按 resource_type + ID 查找,使前端显示技能或工具名称正确
4.增加边界约束使智能体运行更加稳定。