CoreCoder
一个可读、可改、可运行的极简 Python 编码智能体核心。
- Star 数
- ★ 1.9k
- 最近更新
- 2 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 59/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 希望逐行学习编码智能体实现的 Python 开发者,可从
agent.py的主循环开始阅读并设置断点修改。 - 不适合
- 需要安全隔离运行不可信代码的团队:bash 防护只是正则黑名单
- 需要 MCP 资源与提示或 RAG 检索的用户:这两块明确未实现
- 源码审查
- 59/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
CoreCoder 是一个约 1,081 行纯 Python 的命令行编码智能体,用于理解并改造编码智能体的基本实现。它以 Agent 主循环驱动模型调用:模型请求工具后,系统并行执行工具并将结果写回上下文,直至模型返回文本答复或达到轮数限制。项目提供交互式 REPL、单次提示模式、会话保存与恢复、上下文压缩、令牌与成本统计,以及可作为 Python 库导入的 Agent、LLM 和 Config。它能读写本地文件并执行 shell 命令,因此适合在本机受控代码仓库中运行,而不是作为隔离的生产执行环境。
通过 corecoder 启动 REPL,或使用 corecoder -p "..." 执行一次任务。Agent.chat() 将用户输入加入消息历史,调用 LLM.chat() 获取文本或工具调用;工具调用可并行运行,并将结果追加到上下文后继续下一轮。内置 bash、read_file、write_file、edit_file、glob、grep 和 agent 七种工具:可搜索文件名和内容、读取与写入文件、用唯一文本匹配进行替换并返回 diff、执行 shell 命令,以及启动不能继续生成子智能体的子智能体。context.py 按三档处理上下文压力,session.py 保存或恢复会话,/tokens 显示令牌用量与成本估算。
- 希望逐行学习编码智能体实现的 Python 开发者,可从
agent.py的主循环开始阅读并设置断点修改。 - 需要让模型在本地小型项目中查找 TODO、修改函数并运行命令验证结果的开发者,可使用单次提示模式。
- 想在现有轻量编码智能体上增加测试、LSP 或网页访问工具的工程师,可基于
tools/base.py新增工具。 - 使用 DeepSeek、Ollama 或其他 OpenAI 兼容服务的个人开发者,可通过环境变量切换模型端点。
- 希望把任务式代码操作嵌入自己的 Python 程序的开发者,可直接导入
Agent和LLM。
如何安装或部署这个 Agent?
需要 Python 3.10+ 和可用模型凭据。克隆后执行:
git clone https://github.com/he-yufeng/CoreCoder
cd CoreCoder
pip install -e .也可执行 pip install corecoder。默认 OpenAI 配置需要 OPENAI_API_KEY=sk-...;DeepSeek 示例为 OPENAI_API_KEY=sk-... OPENAI_BASE_URL=https://api.deepseek.com CORECODER_MODEL=deepseek-chat;本地 Ollama 示例为 OPENAI_API_KEY=ollama OPENAI_BASE_URL=http://localhost:11434/v1 CORECODER_MODEL=qwen2.5-coder。项目根目录的 .env 会在启动时加载。
如何使用这个 Agent?
交互使用:corecoder。一次性执行并退出:corecoder -p "add error handling to parse_config()"。REPL 中可用 /model <name> 切换模型、/compact 手动压缩上下文、/tokens 查看用量、/diff 查看本次会话改动,以及 /save 和 /sessions 管理会话。作为库使用时,可创建 LLM(model="deepseek-chat", api_key="sk-...", base_url="https://api.deepseek.com"),再调用 Agent(llm=llm).chat("find every TODO comment in this project and list them")。
这个 Agent 有哪些优点和局限?
- 核心引擎约 1,081 行纯 Python,主循环、模型接口、上下文、工具和会话实现均可直接阅读和修改。
- 内置文件读写、内容搜索、文件匹配、唯一匹配编辑、shell 执行和子智能体,能完成完整的本地代码操作循环。
- 支持 OpenAI 兼容 API,并记录令牌用量和成本;可通过可选 LiteLLM 后端连接更多提供商。
- 上下文压缩分为工具输出裁剪、历史摘要和紧急压缩三档,而非一次性简单截断。
- bash 的危险命令防护是正则黑名单,文档明确说明它不是安全沙箱;面对不可信输入需要额外的 seccomp 或容器隔离。
- 重试机制只有指数退避,没有模型回退链或硬性费用上限。
- 子智能体采用同步执行,输出超过 5,000 个字符会截断,且子智能体不能继续创建子智能体。
- 项目明确不包含 MCP 或 RAG;大型仓库的检索式代码定位需要自行扩展。
这个 Agent 与同类方案有什么区别?
CoreCoder 将自己定位为可阅读和可 fork 的最小编码智能体核心,而非 Claude Code 或 aider 的生产级替代品。与 Claude Code 相比,其代码可在本机完整阅读和修改;与 aider 相比,它的实现规模更小;它借鉴 nanoGPT 的教学式极简定位,但目标是让智能体编辑代码而非训练 GPT。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| CoreCoder 当前 | 59 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.9k | 2 天前 | Python | OpenAI API |
| Kode CLI | 44 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 5.2k | 3 天前 | TypeScript | OpenAI API · Claude API |
| fx 编程代理 | 63 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 3.8k | 今天 | Zig | ChatGPT · Codex · OpenAI API |
| DevSpace | 50 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 5.4k | 4 天前 | TypeScript | ChatGPT |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:工具集最小化,bash有危险命令门禁,子代理被剥夺递归工具,会话路径有防穿越保护,成本追踪透明。扣分:用户确认机制薄弱(仅交互式REPL有确认,一次性模式无),敏感数据处理(API密钥)仅依赖环境变量和.env,无加密或提示,依赖安全未锁定版本,回滚仅依赖git,无内置撤销。
证据显示:代码结构清晰,模块划分合理,测试覆盖核心功能,CI矩阵多平台多版本。扣分:依赖未固定版本,可能因上游变化导致不可用,失败消息虽存在但未全面评估。
证据显示:面向开发者,支持多种LLM提供商,工具可扩展,环境变量配置灵活。扣分:未明确说明资源限制或极端环境适配,触发精度依赖模型行为,未提供详细边界说明。
证据显示:README结构清晰,安装说明详细,命名稳定(曾改名但重定向),有示例和FAQ,已知限制明确,MIT许可证,维护责任明确。扣分:版本变更日志缺失,仅版本号。
证据显示:输出为代码编辑和报告,可直接使用,边际价值在于教学和可定制性,成本效益高(免费开源)。扣分:未提供实际运行效果证据,仅静态分析。
证据显示:README中的声明与代码一致,测试验证了部分功能,文章声称基于代码。扣分:缺乏外部来源佐证,部分声明(如'86 tests all green')未在静态审查中验证。
- API密钥仅通过环境变量或.env文件管理,未提供加密存储或安全提示,用户需自行确保密钥安全。
- bash工具的危险命令门禁仅为正则黑名单,不是安全沙箱,面对不可信输入时需额外隔离措施。
- 依赖未固定版本,可能因上游更新导致兼容性问题,建议锁定版本。
- 一次性模式(-p)下无用户确认机制,可能执行危险操作,需谨慎使用。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
v0.8.0 Undo and consent now survive restarts. /undo checkpoints serialize to ~/.corecoder/checkpoints.json (base64 payloads, tmp-file swap so a crash can't truncate the file) and reload lazily on first use, and "always allow" grants persist in ~/.corecoder/permissions.json. One-shot -p mode stays pure and still refuses mutating tools. Also in this release: - Test coverage for the REPL slash-command dispatch. - Docs pinned to the code: hook examples, test counts, and line counts are swept by an alarm so they can't drift. 中文说明 …在 GitHub 查看 ↗ -
发布说明摘录
Twenty-three commits since v0.6.0, still in the distilled spirit of the project: - Thinking models show their work (745ff65): deepseek-reasoner, kimi-k2-thinking and friends stream reasoning_content next to the answer. CoreCoder now surfaces it as it arrives instead of dropping it, and keeps it out of the reply and the history so context stays clean. …在 GitHub 查看 ↗ -
v0.6.0 CoreCoder v0.6.0: MCP, hooks, plan mode
发布说明摘录
Four increments since v0.5.0, all in the distilled spirit of the project: - Engine trim (7f323e7): the core loop got leaner without losing behavior. - Pre/PostToolUse hooks (d503117): user shell commands around tool calls, configured in ~/.corecoder/hooks.json. - MCP stdio client (2dfd156): external tools join the agent from ~/.corecoder/mcp.json. Newline-delimited JSON-RPC over subprocess pipes, handshake and crash isolation included. MCP tools flow through the v0.5.0 consent gate and the new hooks like the built-ins. …在 GitHub 查看 ↗
常见问题
它支持哪些模型?
corecoder[litellm] 使用 LiteLLM 后端。运行时会修改我的文件吗?
write_file 和 edit_file 可以写入本地文件,bash 可以执行 shell 命令;应在你愿意让其操作的本地工作目录中运行。如何控制模型调用成本?
/tokens 查看令牌用量和成本估算,但文档未提供硬性预算上限或超预算自动停止功能。