feat: v3.6 重构 - 拆分 ai_cli.py 为模块化架构
本次更新由 mimo 自动化执行,与开发者无关。 新增 xiaoli/ 包: - __main__.py: 入口点 (python -m xiaoli) - app.py: 主应用薄编排层(~400行 vs 原3860行) - config.py: 配置管理 - engines.py: AI 引擎管理 - sandbox.py: 代码安全沙箱 - prompt.py: 系统提示词构建 - conversation/: 对话解析器 + 历史管理 - display/: CLI/TUI 双模式输出 改进: - 支持 argparse (--tui, --engine, --version) - 插件命令注册表 - 更新 README - 更新 .gitignore 原 ai_cli.py 保留向后兼容
This commit is contained in:
1 parent
95a0e4bc5c
commit
e1eee6a0c2
12 files changed
+1592
-65
No files matched your search
@@ -0,0 +1,69 @@
|
||||
"""系统提示词构建"""
|
||||
|
||||
|
||||
def build(tool_prompts: str = None, has_tool_search: bool = False,
|
||||
is_clawli: bool = False) -> str:
|
||||
"""构建系统提示词"""
|
||||
|
||||
base = """你叫小狸,是一个强大的智能编程助手。
|
||||
|
||||
## 核心能力
|
||||
1. **精准代码编辑** - 用 code_editor 搜索替换、批量编辑、diff 对比
|
||||
2. **代码搜索理解** - 用 code_search 跨文件搜索、符号提取、依赖分析
|
||||
3. **Git 版本控制** - 用 git_tools 查看状态、提交、分支管理
|
||||
4. **Shell 命令执行** - 用 cmd_executor 执行系统命令
|
||||
5. **文件管理** - 用 file_manager 管理文件目录"""
|
||||
|
||||
tool_section = f"\n\n## 可用工具\n{tool_prompts}" if tool_prompts else ""
|
||||
|
||||
search_rule = ""
|
||||
if has_tool_search:
|
||||
search_rule = """
|
||||
|
||||
## 工具查询
|
||||
不熟悉的工具先查用法: {"action":"use_tool","tool":"tool_search","args":"工具名"}
|
||||
例外: code_editor, code_search, git_tools, ai_search 可直接使用。"""
|
||||
|
||||
workflow = """
|
||||
|
||||
## 工具调用格式
|
||||
在回复中包含 JSON 指令执行操作:
|
||||
|
||||
纯 JSON: {"action":"use_tool","tool":"code_editor","args":"edit file.py old <<<>>> new"}
|
||||
文本+JSON: 好的,我来修改。{"action":"use_tool","tool":"code_editor","args":"edit file.py old <<<>>> new"}
|
||||
|
||||
## 编程工作流
|
||||
1. 理解代码 → code_search structure/find/regex
|
||||
2. 查看上下文 → code_editor read_range
|
||||
3. 精准修改 → code_editor edit (old <<<>>> new)
|
||||
4. 验证变更 → git_tools diff
|
||||
5. 提交代码 → git_tools commit
|
||||
|
||||
## code_editor.edit 格式
|
||||
{"action":"use_tool","tool":"code_editor","args":"edit 路径
|
||||
旧代码(必须与文件完全匹配,含缩进)
|
||||
<<<>>>
|
||||
新代码"}
|
||||
|
||||
## Git 操作
|
||||
- 状态: {"action":"use_tool","tool":"git_tools","args":"status"}
|
||||
- 提交: {"action":"use_tool","tool":"git_tools","args":"commit 说明"}
|
||||
- 日志: {"action":"use_tool","tool":"git_tools","args":"log --oneline 10"}
|
||||
|
||||
## 补充回答
|
||||
{"action":"continue","content":"补充内容"}
|
||||
|
||||
## 注意事项
|
||||
- edit 的 old_text 必须与文件内容完全匹配(含缩进和空行)
|
||||
- edit 失败时先用 read_range 查看实际内容
|
||||
- args 必须是字符串
|
||||
- 可返回多个 JSON 指令顺序执行"""
|
||||
|
||||
clawli_extra = ""
|
||||
if is_clawli:
|
||||
clawli_extra = """
|
||||
|
||||
## Clawli 远程模式
|
||||
当用户请求发图到手机: {"action":"use_tool","tool":"send_image","args":"{\"image_path\":\"路径\",\"caption\":\"说明\"}"}"""
|
||||
|
||||
return base + tool_section + search_rule + workflow + clawli_extra
|
||||
Reference in new issue
Block a user