这个项目能做什么
这是一个按《AG-UI 群聊扩展协议标准 v1.0》实现的群聊协议枢纽(Hub),使用 C# / .NET 10 的 ASP.NET Core Minimal API 编写。它把“群聊”做成一种可供第三方应用接入的协议层:群组与成员的生命周期、消息扇出、订阅与实时下行都遵循同一套事件与错误码约定,AI 智能体则作为群成员参与其中。
协议能力
- 群组生命周期:创建、更新、解散,对应 GROUP_CREATED / GROUP_UPDATED / GROUP_DISBANDED。
- 成员管理:加入、移除、主动退群、角色与资料变更(GROUP_MEMBER_*)。
- 消息扇出:用户消息以 TEXT_MESSAGE_START/CONTENT/END 三元组广播,提供 all、mentioned、private 三种可见范围,并支持撤回、已读回执、输入中状态。
- 订阅机制:GROUP_SUBSCRIBE / GROUP_UNSUBSCRIBE / GROUP_SUBSCRIBE_ACK / GROUP_STATE_SNAPSHOT。
- 双传输:WebSocket 全双工(/ws)与 SSE 单向下行(/sse),带心跳保活;SSE 可通过 HTTP 接口动态订阅与退订。
- 智能体触发规则(协议 §6):提及触发、全量监听、关键词触发、语境触发(由模型按上下文决定是否发言)。
- HTTP 上行 API 覆盖建群、发现/进入客服知聚、群名自动生成、成员增删、发消息、上传与下载附件、撤回、已读、人机交互决策、快照与成员列表等;错误统一返回 code + message,状态码映射到 403/404/409/400。写接口按令牌身份覆盖请求体中的身份字段,读接口校验调用者是群成员。
智能体与记忆
- AguiGroupChat.Agents 基于 Microsoft Agent Framework 实现 IAgentGateway:mock 提供方开箱可用,也可配置 OpenAI 兼容端点(Ollama / vLLM / Azure OpenAI / DeepSeek)。触发后流式回灌文本事件,函数调用扇出 TOOL_CALL_START。
- 人机交互(HITL):工具可用 ApprovalRequiredAIFunction 标记为需审批,模型调用时运行中断,群聊广播 AGENT_INTERACTION_REQUEST 交互卡片,仅触发者可批准或拒绝,决策后同一会话恢复。
- RAG 语义记忆:MemoryContextProvider 注入检索上下文,向量存于 pgvector,embedding 可走 HTTP 端点或 LLamaSharp 本地模型(如 bge-m3);知识库支持文档切片与检索,并有记忆范围、TopK、相似度阈值等可调项。
- 记忆拟人类型:每个数字员工可配置五档记忆预设与口吻模式,未配置时沿用平台全局,保持向后兼容。
- 内置工具集包括计算器、单位换算、群记忆检索、读附件等,联网的 web_search / read_url 默认关闭。
- 图片理解:带图片附件的那一轮回复会路由到视觉模型,图片以 base64 多模态内容传入。
- 思考模式桥接:外部服务的 REASONING_MESSAGE_CONTENT 走独立通道,前端渲染可折叠的思考过程块。
应用与扩展功能
- 用户管理:注册、登录、登出、改密、资料维护,PBKDF2 密码哈希与会话令牌,WS/SSE 支持令牌鉴权;登录接口有防用户名枚举与失败限速处理。
- 平台级 RBAC:SuperAdmin / Admin / Operator / User 四档,可用配置名单自举,也可由超级管理员在线授予;另有用户分组与按组授权,用于数字员工与技能的可见性白名单。
- 技能库:可分 prompt / shell / http / dotnet 四类,其中带执行能力的技能仅系统管理员可增删改;支持用自然语言生成技能定义与试运行。
- 一键组织编排:输入一句话需求,以 SSE 流式生成岗位方案,预览组织结构、技能与指派关系后整体落库,并可在创建时同步建群。
- 单聊与客服知聚:可为数字员工幂等创建私有双人单聊;客服知聚中普通用户以参与者身份进入,会话彼此隔离。
- 全局搜索跨消息、语义记忆与知识库检索,并按可见性过滤结果。
- 链接代理、数据导出/导入、运行时模型配置、审计日志与账号注销等企业合规相关能力。
部署与项目形态
- 提供 Web 演示、仅协议 Hub、Windows 桌面(WPF + WebView2)、跨平台桌面(Avalonia)四种运行方式;桌面版支持多实例共享同一后端进程。
- 持久化可选 JSON 单文件快照或 postgres / mysql / sqlite 数据库;docker compose 一键启动 postgres(pgvector) + 内置 Ollama + Web,默认即开启语义记忆。
- 附带第三方接入 SDK(AguiClient + AguiRealtimeClient,支持 net8.0/net10.0)、示例客户端、单元与端到端测试,以及 Playwright 浏览器自动化脚本。
评论
0 评分人数达到10人后显示
登录后参与讨论。