Soulter
f2c2a6da4a
chore: ruff format
2025-12-20 00:07:42 +08:00
Soulter
dd3df425ee
feat: add warnings for missing provider IDs in manager and context
...
- Introduced logging warnings in ProviderManager and Context classes when a provider ID is not found, indicating potential issues due to ID modifications.
- Updated the ProviderPage.vue to advise against modifying provider IDs, highlighting possible configuration impacts.
2025-12-20 00:06:42 +08:00
Soulter
f0dee35ba9
feat: enhance tool call handling and agent stats tracking and UI integration for tool calls render ( #4101 )
...
* feat: enhance tool call handling and UI integration for tool calls render
- Added support for tool call messages in the agent runner and webchat event handling.
- Implemented JSON message component for structured tool call data.
- Updated chat route to save tool call information in message history.
- Enhanced frontend to display tool call details in a collapsible format, including status and results.
- Introduced elapsed time tracking for ongoing tool calls in the chat interface.
* fix: improve message handling in agent run utility and tool loop runner
- Refactored message sending logic in `astr_agent_run_util.py` to use `msg_chain` directly for better clarity.
- Added a check in `tool_loop_agent_runner.py` to ensure `tool_call_result_blocks` is not empty before yielding the last tool call result, preventing potential errors.
* refactor: enhance message structure and UI for chat components
- Updated message handling in `MessageList.vue` to support structured message parts, including plain text, images, audio, and files.
- Improved the `Chat.vue` component styles for better visual consistency.
- Refactored message parsing logic in `useMessages.ts` to accommodate new message formats and ensure proper rendering of embedded content.
- Removed deprecated tool call handling from the message structure, streamlining the message display process.
* chore: ruff format
* feat: implement agent statistics tracking and display in chat
- Added `AgentStats` and `TokenUsage` data classes to track agent performance metrics.
- Enhanced `ToolLoopAgentRunner` to collect and update agent statistics during execution.
- Integrated agent statistics sending to webchat for real-time updates.
- Updated chat route to save and display agent statistics in message history.
- Improved frontend components to visualize agent statistics, including token usage and duration metrics.
* fix: improve message handling in Telegram event and agent run utility
- Updated message sending logic in `astr_agent_run_util.py` to send the correct message chain for tool calls.
- Enhanced `tg_event.py` to edit messages during streaming breaks, improving message management and user experience.
- Added error handling for message editing failures to ensure robustness.
* chore: ruff format
2025-12-18 17:36:45 +08:00
Dt8333
f624971613
chore: fix bunches of type checking errors ( #3213 )
...
* chore(core.utils): 🚨 修正错误Lint
* chore(core.provider): 🚨 修复基类错误Lint
* chore(core.utils): 补全session_get()的重载
* chore(core.provider): 🚨 修正实现错误Lint
* chore(core.platform): 🚨 修正platform基类和webchat的错误Lint
* chore(core.platform): 修正错误实现Lint
* fix(core.provider): 修复循环调用和错误assert
* chore(core.platform): 修复部分实现Lint
* chore(core.provider): 补充Dify.text_chat_stream的参数类型
* chore(core.pipeline): 🚨 修复错误Lint
* fix(core.slack): 补充遗漏导入
* chore(core.utils): 修复错误的session_get声明
* chore(core.platform): 移除Lark adapter import中的wildcard
* chore(core.db): 修复声明和部分逻辑
* chore(core.db): 添加typings,使faiss参数能被正确识别。
* chore(core): 修复声明
* chore(core): 修改声明
* chore: 补充faiss声明
* chore(dashboard): 修改实现,减少报错
* chore(package): 修改部分声明与实现,减少报错
* chore(core): 添加Handler的overload,以去除部分assert同时通过类型检查
* chore(core.pipeline): 修改Pipeline Scheduler的execute,将判断属性改为判断类型,通过静态类型检查
* chore(core.config): 添加类型标注,通过类型检查
* chore(core.message): 为File._download_file添加检查,通过类型检查
* fix: 将断言改为条件判断以实现优雅关闭的容错性
* refactor: 移除 discord 客户端中的 assert,改用 if None 判断并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: DiscordPlatformAdapter 对 self.client.user 为 None 做日志并返回,移除断言
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 增强 Lark 相关空值/异常检查并完善日志输出
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将断言替换为条件检查并加入日志与错误处理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* chore: 移除LLM生成的无用注释
* refactor: 使用 File.get_file 替换下载逻辑并移除 assert,提供默认 filename
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: Slack Socket 未初始化抛出运行时异常,图片 URL 判空改为非空判断
* refactor: 将 WeChatPadProAdapter 的断言改为空值判断并添加日志
* refactor: 使用 isinstance 替代断言实现类型判断,便于静态检查
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 去除cast,直接使用字段与字典访问,修正端口解析
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 使用 match-case 重构 ProviderManager 加载并通过类型检查抛出 TypeError
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: group_name_display 时若 group 对象为空则记录错误并返回
* fix: 将 _get_current_persona_id 的 assert 替换成 if guard 并返回 None
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 优化插件目录存在性检查及图片URL非空验证,更新JSON排序配置
* fix: 将 datetime_str 的 assert 替换为显式检查并抛出异常
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改为运行时检查并在找不到调度器时跳过
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除 cast,改用 isinstance 检查 FaissVecDB 并警告
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 删除 typing.cast 导入,并在获取文件绝对路径前校验 file_
* refactor: 移除 typing.cast,简化内容安全检查调用
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 将 PlatformMetadata.id 设为必填并在注册时传入 id,移除 cast
* refactor: 移除 cast,改用 HasInitialize 与 isinstance 进行初始化
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 ProviderManager.initialize 增加ID类型判断,避免 None 导致 get 失败
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 为 OTTSProvider 与 AzureNativeProvider 引入 _client 与 client 属性改进上下文管理
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 为 Whisper 自托管源添加模型未初始化校验并直接调用 transcribe
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 移除未使用的 cast 导入并简化 platform_name 赋值
* refactor: 引入 cast 并对 id 使用 cast(str, ...) 提升类型安全
* fix: 将 _id_to_sid 返回改为 str,空值返回空串;对 id 与 message_id 使用 cast
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 重构 Discord 处理逻辑:强制 类型转换、优先斜杠指令并优化提及判断
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* fix: 统一对 id 获取执行 cast,并在微信消息解析失败时抛错
* Revert "fix: 去除cast,直接使用字段与字典访问,修正端口解析"
This reverts commit 1cbfdf9d1b .
* fix: 百炼 Rerank 会话关闭时返回空结果;初始化 request.prompt 避免空值拼接
* fix: 统一处理搜索结果链接为字符串,新增 _get_url 助手并适配 Bing/Sogo
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
* refactor: 调整 call_handler 泛型、Discord 通道注解及 FishAudioTTS API 请求类型
* refactor: 使用 col(...) 替代列引用并对结果进行 CursorResult 强转
* chore: ruff format
---------
Co-authored-by: aider (openai/gemini-3-pro-high) <aider@aider.chat >
Co-authored-by: Soulter <905617992@qq.com >
2025-12-09 14:13:47 +08:00
Soulter
fd9cb703db
refactor: update ToolSet initialization to use Pydantic Field and clean up deprecated methods in Context
2025-11-16 12:13:11 +08:00
Soulter
17422ba9c3
feat: introduce messages field in agent RunContext
2025-11-15 21:15:20 +08:00
Soulter
89e79863f6
fix: ensure image_urls and system_prompt default to empty values in ProviderRequest
2025-11-14 22:45:55 +08:00
Soulter
d19945009f
refactor: decople the agent impl part and introduce some helper context method to call llm
2025-11-14 19:17:24 +08:00
Soulter
50144ddcae
refactor: revise LLM message schema and fix the reload logic when using dataclass-based LLM Tool registration ( #3234 )
...
* refactor: llm message schema
* feat: implement MCPTool and local LLM tools with enhanced context handling
* refactor: reorganize imports and enhance docstrings for clarity
* refactor: enhance ContentPart validation and add message pair handling in ConversationManager
* chore: ruff format
* refactor: remove debug print statement from payloads in ProviderOpenAIOfficial
* Update astrbot/core/agent/tool.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/agent/message.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/agent/message.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/agent/tool.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/pipeline/process_stage/method/llm_request.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update astrbot/core/agent/message.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* refactor: enhance documentation and import mcp in tool.py; update call method return type
* fix: 修复以数据类的方式注册 tool 时的插件重载机制问题
* refactor: change role attributes to use Literal types for message segments
* fix: add support for 'decorator_handler' method in call_local_llm_tool
* fix: handle None prompt in text_chat method and ensure context is properly formatted
---------
Co-authored-by: LIghtJUNction <lightjunction.me@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-02 18:12:20 +08:00
LIghtJUNction
0b7fc29ac4
style: add ruff lint module of isort and pyupgrade, and some ruff check fix ( #3214 )
...
Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com >
Co-authored-by: Soulter <905617992@qq.com >
2025-11-01 13:26:19 +08:00
Soulter
0d850d7b22
fix: refine docstring for add_llm_tools method in Context class
2025-10-29 20:16:27 +08:00
Soulter
a2be155b8e
feat: add method to register LLM tools in Context class
2025-10-29 20:13:15 +08:00
Soulter
59df244173
improve
2025-10-23 21:20:41 +08:00
Soulter
65bc5efa19
feat: 集成知识库管理器,优化知识库上下文注入流程,移除冗余代码
2025-10-22 21:59:00 +08:00
Soulter
1542ea3e03
fix: context.get_provider_by_id issue
2025-09-22 17:22:50 +08:00
Soulter
80a86f5b1b
fix: 修复 astrbot.core.star 等包下的 type checking error ( #2787 )
...
* fix: 修复 astrbot.core.star 等包下的 type checking error
* refactor: improve type checking and annotations
* chore: ruff format
2025-09-21 18:10:04 +08:00
Soulter
cfd05a8d17
chore: clean code
2025-08-23 21:46:59 +08:00
Soulter
0759a11a85
fix: 修复 stage 在不同 pipeline 中被重复使用的问题和 persona 相关问题
2025-08-13 13:13:04 +08:00
Soulter
369eab18ab
Refactor: 重构配置文件管理,以支持更灵活的、会话粒度的(基于 umo part)配置文件隔离 ( #2328 )
...
* refactor: 重构配置文件管理,以支持更灵活的、基于 umo part 的配置文件隔离
* Refactor: 重构配置前端页面,新增数个配置项 (#2331 )
* refactor: 重构配置前端页面,新增数个配置项
* feat: 完善多配置文件结构
* perf: 系统配置入口
* fix: normal config item list not display
* fix: 修复 axios 请求中的上下文引用问题
2025-08-13 09:18:49 +08:00
Soulter
b1e3018b6b
Improve: 引入全新的人格管理模式以及重构函数工具管理器 ( #2305 )
...
* feat: add persona management
* refactor: 重构函数工具管理器,引入 ToolSet,并让 Persona 支持绑定 Tools
* feat: 更新 Persona 工具选择逻辑,支持全选和指定工具的切换
* feat: 更新 BaseDatabase 中的 persona 方法返回类型,支持返回 None
2025-08-04 00:56:26 +08:00
Soulter
87f05fce66
Fix: 当多个相同消息平台实例部署时上下文可能混乱(共享) ( #2298 )
...
* perf: update astrbot event session format, using platfrom id to ensure uniqueness
fixes : #1000
* fix: 更新 MessageSession 类以使用 platform_id 作为唯一标识符,并调整相关方法以确保一致性
* fix: 更新 MessageSession 文档以明确 platform_id 的赋值规则,并调整 get_platform 和 get_platform_inst 方法的返回类型
2025-08-02 21:38:55 +08:00
sheffey
7cbaed8c6c
fix: add status checking for embedding model providers
2025-07-11 18:36:40 +08:00
Soulter
16e3cd0784
fix: get_using_stt_provider is fetching using ProviderType.TEXT_TO_SPEECH but should use ProviderType.SPEECH_TO_TEXT for STT isolation.
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-10 12:58:39 +08:00
Soulter
a03c79b89d
style: use named expression
2025-06-09 23:51:54 +08:00
Soulter
98800d3426
fix(typo): "seperate_provider" -> "separate_provider"
2025-06-09 23:50:31 +08:00
Soulter
621b556856
✨ feat: 支持对提供商会话隔离
...
fixes : #1762 #602 #479
2025-06-09 23:33:00 +08:00
Soulter
98d2e9bd27
chore: stage
2025-06-05 23:30:18 +08:00
Soulter
8288d5e51f
feat: embedding provider
2025-05-30 18:07:52 +08:00
Soulter
af934c5d09
fix: correct dimension typo and enhance API registration logic
2025-05-30 11:42:39 +08:00
Soulter
5c092321a6
feat: faiss vecdb implementation
...
remove: old knowledgedb deps
2025-05-23 13:16:24 +08:00
Soulter
10270b5595
feat: alkaid framework and supports to customize webapi endpoint
2025-05-17 15:38:51 +08:00
Soulter
600a2c6748
🐛 fix: context.get_platform() error
2025-03-05 13:28:55 +08:00
Soulter
49bba9bf98
style: format codes
2025-03-03 13:30:55 +08:00
Soulter
a18de9de7d
✨ feat(plugin): 添加 AstrBot 启动完成时的事件钩子;添加获取制定平台适配器的接口
2025-03-02 20:56:18 +08:00
Soulter
a84dc599d6
fix: 修复 /tts 指令
2025-02-09 22:14:10 +08:00
Soulter
8da029add9
feat: 支持 TTS, STT 提供商的显示和快捷切换
2025-02-09 22:08:51 +08:00
Soulter
12f4e1146f
feat: 更好的对话管理
2025-02-05 13:26:53 +08:00
Soulter
9a7a654596
perf: 插件处于禁用状态时其所属的函数调用工具不可被启用 #254
2025-01-30 00:27:10 +08:00
Soulter
19797243f6
perf: 增加插件链接
2025-01-29 19:56:09 +08:00
Soulter
c9426bb6eb
config
2025-01-29 12:25:54 +08:00
Soulter
be662b913c
feat: 支持 Whisper STT,并适配 Tencent 语音格式
2025-01-11 17:19:28 +08:00
Soulter
8dc8c5b5dc
feat: 支持对插件禁用/启用
2025-01-08 22:28:20 +08:00
Soulter
9644791783
feat: kdb
2024-12-30 18:06:09 +08:00
Soulter
7c06d82f27
perf: plugin manager 重复 reload 释放资源
2024-12-25 12:50:29 +08:00
Soulter
766f6a1ba2
perf: use request_llm
2024-12-21 16:35:16 +08:00
Soulter
c675017374
feat: 新增LLM请求事件钩子和装饰消息结果钩子
2024-12-19 21:33:03 +08:00
Soulter
acb3af8ab8
feat: reminder
2024-12-16 20:02:50 +08:00
Soulter
990390218c
perf: 优化向后兼容性
2024-12-14 22:26:08 +08:00
Soulter
85380ade6a
feat: 支持 llmtuner
...
perf: 优化流水线
2024-12-11 23:53:10 +08:00
Soulter
c3357dc0e2
feat: 插件帮助
2024-12-11 16:09:16 +08:00