# auto-coder **Repository Path**: auto-stack/auto-coder ## Basic Information - **Project Name**: auto-coder - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-14 - **Last Updated**: 2026-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Auto Coder 一个用 [Auto](https://github.com/autolang/auto) 语言编写的 AI 编程助手。Auto 是一种可编译为 Rust 的系统级编程语言。本项目支持 Anthropic 和 OpenAI API,提供流式输出、工具调用和交互式 REPL。 ## 特性 - **多后端** — 统一接口支持 Anthropic Claude 和 OpenAI GPT - **流式输出** — 两个后端均支持 SSE 流式实时输出 - **工具调用** — 5 个内置工具(Bash、Read、Write、Edit、Grep),带权限控制 - **REPL** — 交互式循环,支持对话历史、会话持久化和内置命令 - **单次执行** — 从命令行运行一条提示后直接退出 - **上下文压缩** — 自动压缩对话历史以控制 token 用量 - **重试退避** — 对瞬态 HTTP 错误使用带抖动的指数退避重试 ## 项目结构 ``` coder/ ├── main.at CLI 入口,参数解析,Provider 初始化 ├── main_merged.at 单文件合并版本,用于 a2r 验证 ├── types.at API 类型定义(消息、请求、响应、流事件) ├── errors.at 错误枚举(ApiError、ToolError、RuntimeError) ├── settings.at 设置加载器(~/.autocode/settings.json) ├── json_helpers.at JSON 序列化、SSE 解析、OpenAI 响应归一化 ├── sse.at 增量 SSE 解析器 ├── pac.at 项目清单文件 ├── api/ │ ├── anthropic.at Anthropic Messages API 客户端 │ └── openai.at OpenAI Chat Completions 客户端,含消息格式转换 ├── cli/ │ └── repl.at 交互式 REPL 循环 ├── runtime/ │ ├── agent.at Agent 主循环(提示 → LLM → 工具 → 循环) │ ├── context.at 对话压缩 │ ├── permission.at 权限策略(Allow / Ask / ReadOnly) │ └── session.at JSONL 会话持久化 └── tools/ ├── registry.at 工具注册与 JSON 定义构建 ├── bash.at Shell 命令执行,带危险命令拦截 ├── file_read.at 带行号的文件读取 ├── file_write.at 文件写入,自动创建父目录 ├── file_edit.at 精确字符串替换 ├── grep.at 跨文件正则搜索 ├── spec_test.at 实验性 spec trait 工具定义 └── mod.at 模块重导出 ``` ## 工具 | 工具 | 只读 | 说明 | |------|------|------| | Bash | 否 | 执行 Shell 命令,自动拦截危险模式 | | Read | 是 | 带行号读取文件,支持偏移和行数限制 | | Write | 否 | 创建或覆盖文件,自动创建父目录 | | Edit | 否 | 精确替换文件中的唯一字符串 | | Grep | 是 | 跨文件正则搜索,支持 glob 过滤 | ## 使用方法 ```bash # 交互式 REPL autocode # 单次提示 autocode --prompt "解释 agent 主循环" # 指定选项 autocode --provider openai --model gpt-4o --allow # 可用参数 --prompt <文本> 运行单条提示后退出 --model <名称> 模型名称(默认:claude-sonnet-4-20250514) --provider <名称> 后端:anthropic 或 openai(默认:anthropic) --api-key <密钥> API 密钥(覆盖配置/环境变量) --base-url <地址> API 基础 URL(覆盖配置/环境变量) --permission <模式> 权限模式:ask、allow 或 read-only --allow 等同 --permission allow --read-only 等同 --permission read-only --system <提示词> 自定义系统提示词 --dir <路径> 工作目录 ``` ### REPL 命令 | 命令 | 说明 | |------|------| | `:help`、`:h` | 显示可用命令 | | `:quit`、`:q` | 退出 REPL | | `:reset` | 清空对话历史 | | `:messages` | 显示当前消息数量 | ## 配置 配置文件位于 `~/.autocode/settings.json`: ```json { "env": { "ANTHROPIC_API_KEY": "", "ANTHROPIC_BASE_URL": "" }, "provider": null, "model": null, "api_key": null, "base_url": null, "permission": null } ``` 也支持 `ANTHROPIC_API_KEY` 和 `OPENAI_API_KEY` 环境变量。 ## 示例 `examples/` 目录包含 41 个渐进式快照,每个都是独立的 Auto 程序,演示一个概念——从简单的哈希函数到完整的流式 Agent 循环。按复杂度排序,可独立编译运行。 ## 许可证 MIT