Repository navigation
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 中英同步。