44 Commits

Author SHA1 Message Date
da5ee05311 feat: add session token and context statistics 2026-08-05 16:45:56 +08:00
b1b8e2d923 feat: migrate browser tooling to agent-browser 2026-07-27 23:53:55 +08:00
5d0cf5b070 feat(agent): record tool/turn/provider metrics 2026-07-24 17:21:44 +08:00
4175af113c fix(provider): sanitize replayed assistant media 2026-07-20 00:11:19 +08:00
355244a3d6 refactor: unify turn progress delivery 2026-07-19 13:36:42 +08:00
7a3058d8b5 docs: finalize streaming turn architecture 2026-07-17 17:45:22 +08:00
c7ceb877a2 feat: stream Anthropic turns with signed replay state 2026-07-17 17:11:26 +08:00
3ada5b9421 feat: stream agent turns through session lifecycle 2026-07-17 15:44:08 +08:00
588449d373 feat: stream OpenAI provider responses 2026-07-17 15:17:36 +08:00
a73f9edda2 支持工具读取图片并注入多模态模型 2026-07-16 19:07:56 +08:00
f4172fea38 实现tui和webui的附件收发,优化文件在消息中的处理 2026-07-16 17:49:51 +08:00
63d20d1eb8 refactor: eliminate build warnings and legacy evaluator
Resolve strict Clippy findings across all targets, preserve public API compatibility with scoped lint exceptions, and fix sourced messages retaining media references. Replace meval and its future-incompatible nom dependency with a bounded internal expression parser and regression tests.
2026-07-14 11:00:39 +08:00
fdd7f47305 系统提示词精简,拆分固定部分与可变部分,固化工具skill顺序,提升缓存命中率 2026-06-17 23:25:28 +08:00
2558d6dae1 优化代码格式,调整断言和格式化共享日历事件输出 2026-06-17 22:40:43 +08:00
fe2bc3dfd3 更新版本号至1.1.2,优化Dockerfile中的himalaya安装方式,调整内容块构建逻辑以保留文本,增强Feishu通道的媒体处理,新增交互式消息设计文档 2026-06-17 22:22:41 +08:00
8f4ee79d8d Format codebase with rustfmt 2026-06-15 23:47:24 +08:00
3df628bd28 补充/info信息 2026-05-29 16:23:35 +08:00
a77c026826 增加deepseek的支持。 2026-05-25 17:40:17 +08:00
f0879f8d13 重构文件消息处理流程。 2026-05-25 11:59:29 +08:00
25d37bcdc1 feat(system-prompt): add history section prompting agent to use timeline_recall 2026-05-10 14:46:20 +08:00
f9ae4b2c69 fix(context): 全面修复和增强上下文压缩机制
Bug修复:
- fast_trim 死代码: 去掉 .clone() 使其真正修改原 history
- compress_once 边界错误: 第一条 user 重复 + 最后一条 user 丢失
- handle_cron_message 遗留的重复压缩调用

新特性:
- System prompt 不参与压缩,在压缩后注入
- 孤儿 tool 清理: compress_once 返回前修复 tool 对完整性
- Agent Loop 内每轮 token 检查: 80% 窗口阈值时预裁剪旧 tool 输出
- 上下文溢出恢复: 解析 LLM 错误中的实际 token limit 并降级重试
- 硬截断降级: tokens > 90% context_window 时 head+tail 保底
- parse_context_limit_from_error: 支持 OpenAI/Anthropic/llama.cpp 格式

测试: 新增 6 个单元测试覆盖上述所有场景
2026-05-10 12:23:26 +08:00
81e9f1e7db clippy --fix: 合并嵌套if、简化map_or、移除冗余引用等机械性优化 2026-05-08 16:35:21 +08:00
5d62141658 1、修复和提升记忆系统 2、简化消息标记 2026-05-08 15:09:27 +08:00
c602a0695d feat: add memory system with FTS5 search and context compression integration 2026-05-07 23:32:59 +08:00
61d2fe9ef0 修复及完善cron任务 2026-05-07 16:24:13 +08:00
0e146a8f2a 可观测性改善,llm api兼容性改善 2026-05-04 23:04:28 +08:00
98eb7bea3d 新增跨session消息发送能力 2026-05-04 00:32:24 +08:00
c11eb348f9 Refactor: Make AgentLoop stateless, clean up architecture 2026-04-27 23:23:10 +08:00
1abac85034 集成技能功能到系统提示词框架
- 在 AgentLoop 中添加 SkillsLoader 支持\n- 在系统提示词构建中集成技能提示\n- 更新 Session 以传递 SkillsLoader\n- 修复所有编译错误和测试问题
2026-04-27 23:04:24 +08:00
f704900e07 统一工作目录管理 2026-04-27 17:23:52 +08:00
75a3bf9df4 增加系统提示词框架 2026-04-27 17:07:01 +08:00
81dcc67932 compressor不再使用独立的LLMProvider实例。减少开销 2026-04-24 10:04:21 +08:00
ef601107ac feat: 添加工具调用支持,优化消息处理和持久化 2026-04-18 14:17:23 +08:00
c971bc3639 feat: 添加上下文压缩功能,优化消息历史管理和工具调用日志记录 2026-04-12 18:38:38 +08:00
fb0a9e06aa feat(agent): add loop detection and result truncation for tool calls 2026-04-12 13:18:16 +08:00
394b5fdd6a feat:1、agentloop支持多轮工具调用
2、并发工具调用
3、可观测性改进。
2026-04-12 11:02:48 +08:00
862eb1115a Revert "feat(agent): add parallel tool execution with concurrency-safe batching"
This reverts commit 0c0d0c14436a230ca34c0cd9647c8fc14f62d7cc.
2026-04-12 09:54:38 +08:00
0c0d0c1443 feat(agent): add parallel tool execution with concurrency-safe batching
Implement parallel tool execution in AgentLoop, following the approach
used in Nanobot (_partition_tool_batches) and Zeroclaw (parallel_tools).

Key changes:
- partition_tool_batches(): group tool calls into batches based on
  concurrency_safe flag. Safe tools run in parallel via join_all;
  exclusive tools (e.g. bash) run in their own sequential batch.
- execute_tools(): now uses batching instead of flat sequential loop.
- CalculatorTool: add read_only() -> true so it participates in
  parallel batches (it has no side effects, so concurrency_safe = true).

4 unit tests added covering: mixed safe/exclusive, all-safe single
batch, all-exclusive separate batches, unknown tool defaults.
2026-04-08 12:04:03 +08:00
2dada36bc6 feat: introduce multimodal content handling with media support
- Added ContentBlock enum for multimodal content representation (text, image).
- Enhanced ChatMessage struct to include media references.
- Updated InboundMessage and OutboundMessage to use MediaItem for media handling.
- Implemented media download and upload functionality in FeishuChannel.
- Modified message processing in the gateway to handle media items.
- Improved logging for message processing and media handling in debug mode.
- Refactored message serialization for LLM providers to support content blocks.
2026-04-07 23:09:31 +08:00
a051f83050 Refactor AgentLoop to manage history externally via SessionManager
- Removed internal history management from AgentLoop.
- Updated process method to accept conversation history as a parameter.
- Adjusted continue_with_tool_results to work with external history.
- Added OutboundDispatcher for handling outbound messages from MessageBus.
- Introduced InboundMessage and OutboundMessage structs for message handling.
- Updated Channel trait to include message handling and publishing to MessageBus.
- Refactored Session to manage chat histories instead of AgentLoop instances.
- Enhanced GatewayState to start message processing loops for inbound and outbound messages.
2026-04-07 21:53:37 +08:00
9834bd75cf feat: add calculator tool and integrate with agent loop
- Introduced a new CalculatorTool for performing various arithmetic and statistical calculations.
- Enhanced the AgentLoop to support tool execution, including handling tool calls in the process flow.
- Updated ChatMessage structure to include optional fields for tool call identification and names.
- Modified the Session and SessionManager to manage tool registrations and pass them to agents.
- Updated the OpenAIProvider to serialize tool-related message fields.
- Added a ToolRegistry for managing multiple tools and their definitions.
- Implemented tests for the CalculatorTool to ensure functionality and correctness.
2026-04-06 23:43:45 +08:00
4ed2f986a1 添加 tracing 日志支持,替换 println! 输出,增强错误处理和调试信息 2026-04-06 23:11:41 +08:00
34ab439067 重构消息处理逻辑,添加 MessageHandler trait,支持多用户会话,更新 FeishuChannel 和 SessionManager,增强错误处理 2026-04-06 22:38:41 +08:00
35d201f206 重构项目结构,添加代理、网关和客户端模块,更新配置以支持默认网关设置,增强错误处理,添加 WebSocket 支持 2026-04-06 16:36:17 +08:00