Skip to content

v2.0.0

Latest

Choose a tag to compare

@sinabs sinabs released this 06 Nov 04:02
2cb1e12

Yoke 2.0.0

Agent 从 ReActAgent 换成 HarnessAgent,会话历史放进 Redis:重启不丢,多个副本共享。

不兼容变更

  • 必须有 Redis。 连接串写在 yoke.redis.uri(prod 读环境变量 YOKE_REDIS_URI,没有默认值),启动期校验格式并 ping,连不上启动即失败,报错里的连接串已脱敏。本地用 docker compose up -d 拉起。
  • 会话按 (userId, sessionId) 寻址,两个 ID 都受 @SafeId 约束(字母、数字、_.-,1~64 位,不能全是点)。
  • 模型能用的工具大幅收紧:文件系统、shell、联网、子 Agent 在装配期关掉;web_fetch、web_search 和读类的记忆与会话工具(memory_get、memory_search、session_history、session_list、session_search)被拒绝,避免模型读到别的用户的数据;工作区里的 tools.json 不再生效。
  • POST /api/chat/stream 的请求体里,content 是内容块形式(包括全是文本块、带图片)时返回 400,目前只支持字符串。

新功能

  • HarnessAgentFactory 每请求新建 HarnessAgent,用完关闭(HarnessAgent.Builder 不能共享,连续 build() 中间件会越积越多)。
  • Compaction:yoke.compaction.triggerMessages / keepMessages 按条数触发压缩,非法值回落到默认;压缩后的摘要放在 context 的第一条消息里。
  • LoggingMiddleware 记录每次调用的耗时,不记录工具参数与输出。
  • 启动时在工作区创建默认 AGENTS.md,消除 AgentScope 的启动警告。
  • 根目录 docker-compose.yml,集成测试用 Testcontainers 拉起真实 Redis。

修复

  • Agent 在结果交给调用方之后才关闭,关闭失败只记日志,不会把已经成功的对话变成 500,流式接口也不会在 RUN_FINISHED 之后再追加 RUN_ERROR。

其他

  • 版本号 1.0.1 → 2.0.0。
  • 清理 IDEA 警告,README 中英同步。