Set up
Skills are installed by placing their folder where your agent loads skills.
The download comes from github.com/liuy821/LY-AI-coder itself, not from our server, so what you get is exactly what its author published.
Install instructions come from the README
Skills do not use an MCP config. Follow the steps in the README below.
README
synced Oct 26, 2026🤖 ly-ai-coder
个人 AI 编程助手 — 从零实现的类 Claude Code Agent
v0.3.0 | 8673 行 Python | 49 个模块 | 6 个外部依赖
✨ 特性
🧠 多 Provider 支持
Anthropic / OpenAI / DeepSeek / 任何 OpenAI 兼容接口,通过 -p 参数切换
🔧 丰富工具集
| 工具 | 说明 |
|---|---|
read_file | 读取文件(支持偏移和行数限制) |
write_file | 写入/创建文件 |
patch | 精确编辑文件(查找替换,不覆盖整个文件) |
run_shell | 执行 Shell 命令(60s 超时,输出截断) |
list_files | 列出目录文件(支持 glob 过滤) |
search_content | 正则搜索文件内容(优先 grep) |
web_search | Bing 搜索(国内可访问,无需 API Key) |
web_fetch | 网页抓取转 Markdown |
🛡️ 安全增强
- 参数校验 — 自动补全默认值、类型转换、缺失参数检测
- 路径安全检查 — 防止路径逃逸(
../拦截) - 工具调用熔断 — 超时控制 + 指数退避重试 + 自动熔断
📐 上下文窗口管理
- Token 预算跟踪(默认 32000 窗口 + 4000 输出预留)
- 自动裁剪策略(FIFO / 重要性保留 / 摘要压缩)
- 实时使用率统计
🧠 记忆系统 v2
- 三层分层检索: 关键词 → 向量(TF-IDF) → LLM 精确选择
- 中文语义检索: jieba 分词 + numpy TF-IDF + 余弦相似度
- 重要性评分: 访问频率 + 时间衰减 + 类型权重 + 用户评分
- TTL 过期: 自动遗忘低价值记忆(7~180 天按类型配置)
- 自动清理: 一键清理过期/低分记忆
💬 对话持久化
- 退出自动保存,
--continue恢复上次对话 - 会话管理命令:
/sessions/save/load/delete - 自动清理旧会话(默认保留最近 50 个)
📋 任务系统
- 创建任务(可设置依赖关系
blockedBy) - 认领 / 完成任务(自动解锁下游依赖)
- 任务可绑定到隔离工作区(worktree)
🏗️ 工作区隔离(Worktree)
- 基于
git worktree的隔离开发环境 - 每个任务可绑定独立工作区
- 安全删除(检查未提交变更)
⏰ 定时任务(Cron)
- 标准 5 字段 cron 表达式
- 持久化存储(重启恢复)
- 守护线程自动调度
👥 多 Agent 协作
- MessageBus — 文件邮箱系统,Agent 间异步通信
- 子 Agent — 可 spawn 独立子 Agent 执行任务
- 协议层 — 标准化的 Agent 通信协议
🔒 权限控制
可配置的安全策略和钩子机制,支持危险操作确认
🔄 死循环检测
- 工具循环检测(连续 N 次工具调用无文本回复)
- 重复工具检测
- 自动干预 + 强制中止
🎨 漂亮终端 UI
基于 Rich 的彩色输出和 Markdown 渲染
🖥️ 终端交互演示
🚀 快速开始
安装
pip install -e .
配置
复制 .env.example 为 .env,填入 API Key:
cp .env.example .env
或使用内置配置系统创建默认配置:
ly-ai-coder config --init
运行对话
# 使用 DeepSeek(默认)
ly-ai-coder chat
# 使用 OpenAI
ly-ai-coder chat -p openai -m gpt-4o
# 使用 Anthropic
ly-ai-coder chat -p anthropic -m claude-sonnet-4-20250514
# 继续上次对话
ly-ai-coder chat -c
测试连接
ly-ai-coder test -p deepseek
📋 命令参考
| 命令 | 说明 |
|---|---|
chat | 启动交互式对话 |
test | 测试 Provider 连接 |
config | 查看/修改配置 |
providers | 列出可用 Provider |
mcp list | 列出 MCP 服务器 |
mcp add | 添加 MCP 服务器 |
mcp remove | 移除 MCP 服务器 |
对话内命令
| 命令 | 说明 |
|---|---|
/save [name] | 保存当前对话 |
/load [name] | 加载对话 |
/sessions | 列出所有对话 |
/delete [name] | 删除对话 |
/exit | 退出 |
🏗️ 架构
ly-ai-coder/
├── src/ly_ai_coder/
│ ├── core/ # 核心引擎
│ │ ├── agent_loop.py Agent 主循环(765行)
│ │ ├── context_window.py 上下文窗口管理(295行)
│ │ ├── circuit_breaker.py 工具调用熔断器(292行)
│ │ ├── context_manager.py 上下文管理器(298行)
│ │ ├── cron_scheduler.py 定时任务调度器(265行)
│ │ ├── loop_detector.py 死循环检测器(112行)
│ │ ├── background.py 后台任务(166行)
│ │ ├── recovery.py 错误恢复(138行)
│ │ └── compact.py 对话压缩(63行)
│ │
│ ├── providers/ # 多模型支持
│ │ ├── base.py 抽象基类(91行)
│ │ ├── anthropic.py Anthropic(227行)
│ │ ├── openai_compatible.py OpenAI 兼容(237行)
│ │ ├── mock.py Mock Provider(测试用)
│ │ └── registry.py Provider 注册表(122行)
│ │
│ ├── tools/ # 工具系统
│ │ ├── builtin.py 8 个内置工具(449行)
│ │ ├── validator.py 参数校验 + 路径安全(136行)
│ │ ├── stats.py 工具调用统计(58行)
│ │ └── web_tools.py Web 搜索/抓取(198行)
│ │
│ ├── memory/ # 记忆系统
│ │ ├── retrieval.py 分层检索(403行)
│ │ ├── vector_index.py 向量索引(254行)
│ │ ├── scorer.py 重要性评分 + TTL(192行)
│ │ └── store.py 文件存储(135行)
│ │
│ ├── permissions/ # 权限控制
│ │ ├── policy.py 策略引擎(181行)
│ │ └── hooks.py 钩子机制(107行)
│ │
│ ├── agents/ # 多 Agent 系统
│ │ ├── subagent.py 子 Agent 管理(341行)
│ │ ├── message_bus.py 文件邮箱通信(61行)
│ │ └── protocol.py Agent 通信协议(69行)
│ │
│ ├── tasks/ # 任务系统
│ │ └── task_manager.py 任务创建/认领/完成(225行)
│ │
│ ├── worktree/ # 工作区隔离
│ │ └── manager.py git worktree 管理(172行)
│ │
│ ├── system/ # 系统提示词
│ │ └── prompts.py Prompt 管理(225行)
│ │
│ ├── skills/ # 技能系统
│ │ └── loader.py 技能加载器(88行)
│ │
│ ├── integrations.py # 统一集成模块(475行)
│ ├── session_manager.py # 对话持久化(320行)
│ ├── config.py # 分层配置系统(191行)
│ ├── mcp_client.py # MCP 协议客户端(314行)
│ ├── mcp_integration.py # MCP 集成(127行)
│ └── cli.py # CLI 入口(511行)
│
├── tests/ # 单元测试(73 个测试用例)
│ ├── test_core_modules.py 核心模块测试(34 个)
│ ├── test_tools.py 工具函数测试(19 个)
│ ├── test_integrations.py 集成测试(20 个)
│ └── conftest.py pytest 共享 fixtures
│
├── .ly/ # 运行时数据
│ ├── config.yaml 用户配置
│ ├── sessions/ 保存的对话
│ ├── memory/ 记忆文件
│ └── mcp/ MCP 配置
│
└── skills/ # 内置技能
├── code-review/ Code Review 技能
├── git-workflow/ Git 工作流技能
└── python-debug/ Python 调试技能
⚙️ 配置
优先级(低→高)
内置默认值 < config.yaml < 环境变量(.env) < CLI 参数
config.yaml
provider:
default: deepseek
deepseek:
base_url: https://api.deepseek.com/v1
model: deepseek-v4-flash
context:
max_tokens: 32000
prune_strategy: fifo
session:
max_sessions: 50
auto_save: true
memory:
max_items: 5
tools:
shell_timeout: 60
环境变量
DEEPSEEK_API_KEY=sk-xxx
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
DEEPSEEK_MODEL=deepseek-v4-flash
🧪 测试
# 安装测试依赖
pip install pytest pytest-asyncio
# 运行所有测试
cd ly-ai-coder
python3 -m pytest -v
# 只跑核心模块测试
python3 -m pytest tests/test_core_modules.py -v
# 只跑工具测试
python3 -m pytest tests/test_tools.py -v
# 只跑集成测试
python3 -m pytest tests/test_integrations.py -v
当前共 73 个测试用例,覆盖:CircuitBreaker、LoopDetector、ContextWindow、CronScheduler、Validator、MemoryStore、TaskManager、SessionManager、MessageBus、文件操作工具。
🗺️ 开发路线
已完成
- Phase 1: 项目骨架 + 核心引擎
- Phase 2: 上下文窗口管理(Token 预算 + 自动裁剪)
- Phase 3: 工具调用熔断(超时 + 重试 + 降级)
- Phase 4: 对话持久化(自动保存 + --continue)
- Phase 5: 记忆系统 v2(向量检索 + 重要性评分 + TTL)
- Phase 6: 工具系统增强(参数校验 + 路径安全 + 统计)
- Phase 7: 分层配置系统 + Mock Provider
- Phase 8: 任务系统 + Worktree 隔离
- Phase 9: 定时任务调度器(Cron)
- Phase 10: 多 Agent 协作(MessageBus + 子 Agent)
- Phase 11: 死循环检测 + 自动干预
- Phase 12: 单元测试(73 个测试用例)
规划中
- 流式输出增强(实时 Token 统计 + 中断恢复)
- Docker 部署
- GitHub CI(自动测试 + 代码检查)
📝 License
MIT