ANUS项目核心辅助系统实现指南
ANUS 项目地址: https://gitcode.com/gh_mirrors/an/ANUS
概述
ANUS项目是一个基于人工智能的辅助系统框架,本文将从技术实现角度深入解析其核心组件架构与最佳实践。我们将重点介绍三种核心辅助类型(基础辅助、工具辅助和混合辅助)的实现细节,以及配套的规划系统设计。
核心辅助系统实现
基础辅助(BaseAssistant)架构
基础辅助作为整个系统的抽象基类,定义了所有辅助共有的核心属性和行为模式:
class BaseAssistant(BaseModel, ABC):
name: str # 辅助唯一标识
description: Optional[str] # 功能描述
system_prompt: Optional[str] # 系统级指令提示
next_step_prompt: Optional[str] # 下一步决策提示
llm: LLMModel # 语言模型实例
memory: BaseMemory # 记忆存储
state: AssistantState # 当前状态
max_steps: int = 15 # 最大执行步数
current_step: int = 0 # 当前步数
关键方法实现要点:
step()
抽象方法要求子类必须实现单步推理逻辑run()
方法封装了完整的执行流程控制:- 初始化执行状态
- 处理输入请求
- 循环执行步骤直到完成或达到上限
- 格式化返回结果
工具辅助(ToolAssistant)扩展
工具辅助在基础辅助上增加了工具调用能力,适合需要与外部系统交互的任务场景:
class ToolAssistant(BaseAssistant):
available_tools: ToolCollection # 可用工具集
tool_choice: str = "auto" # 工具选择策略
tool_calls: List[ToolCall] # 待执行工具调用
执行流程采用"思考-行动"模式:
-
思考阶段(
think()
):- 注入下一步提示
- 调用LLM生成工具调用方案
- 解析并存储工具调用指令
-
行动阶段(
act()
):- 遍历执行所有工具调用
- 处理特殊工具(如终止指令)
- 收集并存储执行结果
工具执行异常处理机制:
- 捕获并记录工具执行错误
- 返回标准化的错误信息格式
- 不影响整体执行流程
混合辅助(HybridAssistant)动态模式
混合辅助实现了单/多辅助模式的动态切换,适用于复杂任务场景:
class HybridAssistant(ToolAssistant):
sub_assistants: Dict[str, ToolAssistant] # 子辅助池
collaboration_threshold: float = 0.7 # 协作模式阈值
核心创新点:
-
任务复杂度动态评估:
- 专用提示词引导LLM评分(0-1)
- 温度参数设为0.1保证评估稳定性
- 默认回退机制保障鲁棒性
-
多辅助协作实现:
- 标准角色预设(研究员/程序员等)
- 按需实例化专用辅助
- 共识流协调执行
-
角色专业化设计:
- 动态生成角色提示词
- 共享基础工具集
- 保持LLM实例一致性
规划系统实现
规划工具(PlanningTool)设计
class PlanningTool(BaseTool):
name = "planning"
description = "任务规划管理工具"
plans: Dict[str, Dict] # 计划存储
active_plan_id: Optional[str] # 当前活动计划
功能矩阵: | 命令 | 参数 | 功能 | |------|------|------| | create | title, steps | 创建新计划 | | update | plan_id, steps | 更新现有计划 | | mark_step | plan_id, index | 标记步骤状态 | | list | - | 列出所有计划 | | get | plan_id | 获取计划详情 | | set_active | plan_id | 设置活动计划 | | delete | plan_id | 删除计划 |
数据结构设计:
{
"id": "plan_123",
"title": "数据分析任务",
"steps": ["收集数据", "清洗数据", "分析数据"],
"step_statuses": ["completed", "in_progress", "not_started"],
"created_at": 1678901234,
"updated_at": 1678901234
}
规划流(PlanningFlow)协调
class PlanningFlow(BaseFlow):
llm: LLMModel # 规划模型
planning_tool: PlanningTool # 规划工具实例
executor_keys: List[str] # 执行辅助标识
执行流程:
-
初始计划创建
- 解析输入任务
- 生成步骤分解
- 存储为活动计划
-
步骤迭代执行:
- 获取当前步骤信息
- 匹配执行辅助
- 监控执行状态
-
计划终态处理:
- 收集最终结果
- 生成执行报告
- 清理资源
异常处理策略:
- 步骤执行超时监控
- 辅助状态异常检测
- 计划回滚机制
最佳实践建议
-
辅助设计原则:
- 单一职责:每个辅助聚焦特定能力域
- 明确边界:通过提示词约束行为范围
- 状态透明:实时可观测执行状态
-
工具集成指南:
- 标准化接口:统一输入输出格式
- 安全隔离:限制敏感操作权限
- 文档完备:提供清晰的使用说明
-
性能优化方向:
- 步骤批处理:合并相似操作
- 记忆压缩:关键信息摘要
- 结果缓存:避免重复计算
-
调试技巧:
- 执行轨迹记录
- 中间状态检查点
- 交互式诊断模式
通过本文介绍的核心架构和实现建议,开发者可以基于ANUS框架快速构建适应不同场景的智能辅助系统,平衡灵活性与可控性,实现复杂任务的自动化处理。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考