内容
<p align="center">
<img src="./logo.svg" width="280" alt="SajiCode" />
</p>
<p align="center">
<strong>自主工程有机体</strong><br/>
一个优先考虑契约的多智能体团队,负责规划、构建、测试、交付并持续运行。
</p>
<p align="center">
<a href="https://www.npmjs.com/package/sajicode"><img src="https://img.shields.io/npm/v/sajicode?style=flat&color=FF6A00&labelColor=1a1a1a" alt="npm"></a>
<a href="https://github.com/RaheesAhmed/SajiCode"><img src="https://img.shields.io/github/stars/RaheesAhmed/SajiCode?style=flat&color=FF6A00&labelColor=1a1a1a" alt="stars"></a>
<a href="https://github.com/RaheesAhmed/SajiCode/blob/main/LICENSE"><img src="https://img.shields.io/github/license/RaheesAhmed/SajiCode?style=flat&color=666666&labelColor=1a1a1a" alt="MIT"></a>
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D18-43853d?style=flat&labelColor=1a1a1a" alt="Node"></a>
</p>
<p align="center">
<a href="#安装">安装</a> ·
<a href="#什么是SajiCode">什么是SajiCode</a> ·
<a href="#能力">能力</a> ·
<a href="#团队">团队</a> ·
<a href="#CLI">CLI</a> ·
<a href="#配置">配置</a> ·
<a href="#为什么选择SajiCode">为什么选择SajiCode</a>
</p>
---
## 安装
```bash
npm install -g sajicode
```
```bash
cd your-project
sajicode
```
或者无需全局安装:
```bash
npx sajicode
```
描述一个任务。团队规划、签订合同、并行构建、验证和更新项目记忆。
```text
为任务管理器构建一个REST API — Express、TypeScript、SQLite。
添加Zod验证、测试、安全审计、Dockerfile和CI。
```
无头/CI:
```bash
sajicode build "修复失败的身份验证测试并打开一个PR" --headless
sajicode fix-ci
```
始终在线:
```bash
sajicode daemon start
sajicode task add "运行站会并修复任何红色CI"
```
---
## 什么是SajiCode
SajiCode **不是** 一个围绕一个模型的聊天包装。
它是一个**自主工程系统**:一个项目经理(PM)协调员,专家的领导者拥有被强制执行的领地,可持续的记忆,原生git安全,一个24/7的守护进程和一个防御性的守护者集群 — 在您的机器、模型和基础设施上运行。
```text
您 → 项目经理(研究 → 计划 → 辩论 → 决定)
↓ 阶段0 合同(锁定)
后端 · 前端 · 质量保证 · 安全 · 部署 · …
↓ 验证 → 交付 → 学习
PROJECT.dna · 技能 · 代码图 · 事件图
```
| 层 | 功能 |
|:--|:--|
| **团队** | 项目经理 + 17名专家 — 并行、优先考虑合同、领地保护 |
| **记忆** | `PROJECT.dna`,语义记忆,经验重放,技能提升 |
| **上下文** | 树状AST代码图 + PageRank检索(查询结构,不要填充令牌) |
| **自主性** | 守护进程,心跳,持久任务队列,睡眠时间整合 |
| **安全** | 每次代理git恢复,写入前扫描,人机协作,策略,审计日志 |
| **防御** | 守护者集群 — 分层SOC响应 + 事件知识图 |
| **互操作性** | MCP工具,A2A代理卡,插件,角色,WhatsApp |
在**本地/隔离**(Ollama),云提供商,CI或无服务器后端(Docker / Modal / Daytona)上运行。
---
## 能力
### 像真正的团队一样构建
- 依赖感知 **任务图** — 独立的领导者并行运行
- **阶段0 合同** — API,类型和文件所有权在编码前锁定
- **多文件批量写入** 并附有快照回滚
- **验证梯度** — 类型检查 → 测试 → 烟雾测试 → 可选E2E
- **研究 → 辩论 → ADR** 用于架构决策
### 记住并改进
- **`PROJECT.dna`** — 跨会话的架构,决策,未完成的工作
- 三层内存 + **语义搜索**
- **经验重放** — 将失败和胜利注入到类似的未来工作中
- **技能提升** — 教训提炼成可移植的`SKILL.md`文件
- 每晚**内存整合** 通过心跳
### 了解大型代码库
- **树状AST代码图** (TypeScript,JavaScript,Python,Go)
- PageRank排名检索到`.sajicode/codegraph.json`
- 可选的提示压缩(配置门控)
### 保持安全
- 写入前**机密/注入扫描**
- Shell风险评分 + 人机协作审批
- 项目经理阻止写入实现文件
- 会话分支 + **`sajicode revert`** / **`undo`** / **`snapshots`**
- 从LangChain `usage_metadata`跟踪使用情况和成本
### 24/7运行
```bash
sajicode daemon start # serve + heartbeat + task queue
sajicode daemon status
sajicode daemon deploy --backend docker # or modal | daytona
sajicode serve # HTTP + channels + A2A card
```
心跳评估`.sajicode/HEARTBEAT.md`(CI,依赖,未完成的工作)而无需您提示。
### 防御基础设施
```bash
sajicode guardian scan
sajicode guardian incidents
```
具有共识门控遏制的分层响应。提供安全官员角色。
### 连接到生态系统
- **MCP** — 附加数据库,API,商业工具(`.sajicode/mcp.json`)
- **A2A** — 发布`/.well-known/agent.json`;其他代理可以调用构建/审计/守护者
- **插件和技能** — 无需分叉即可扩展
- **角色** — SOUL.md样式身份;商业MCP模板(Shopify / Stripe / Gmail)
- **WhatsApp** — 从您的手机发送任务
---
## 团队
一个**项目经理** 协调专家。每个领导者拥有一个**领地** 并且被阻止在领地外编写代码。
| 代理 | 拥有 | 焦点 |
|:--|:--|:--|
| **项目经理** | 仅计划 | 任务图,合同,上下文,记忆 |
| **后端负责人** | `src/api/`,`src/services/`,`src/db/` | REST,GraphQL,身份验证,数据库 |
| **前端负责人** | `src/components/`,`src/pages/`,`src/app/` | React,Next.js,设计系统 |
| **全栈负责人** | `src/features/` | 端到端功能切片 |
| **移动端负责人** | `app/`,`src/screens/` | React Native,Expo |
| **数据和AI负责人** | `src/ai/`,`src/ml/`,`*.py` | RAG,LangGraph,矢量数据库 |
| **平台负责人** | `src/cli/`,`src/mcp/`,`packages/` | CLI,MCP服务器,SDK |
| **研究负责人** | 只读 | 引用的研究,比较,ADR |
| **质量保证负责人** | `tests/`,`*.test.ts` | 单元,集成,E2E |
| **安全负责人** | 整个代码库(审计) | OWASP,机密,身份验证强化 |
| **部署负责人** | `Dockerfile`,`.github/`,`k8s/` | Docker,CI/CD,基础设施 |
| **审查代理** | 整个代码库(门控) | 完整性,类型,架构 |
另外还有领域专家:Next.js,Python API,AI/RAG,MCP,3D web,性能。
**优先考虑合同(中/大型任务):**
1. 代理声明他们将要触及的API,类型和文件
2. 项目经理拒绝文件写入冲突并**锁定** 注册表
3. 领导者并行实施冻结的合同
---
## CLI
无参数 → 交互式REPL。子命令 → CLI模式。
```bash
sajicode --help
sajicode --version
```
### 核心
| 命令 | 描述 |
|:--|:--|
| `sajicode` | 交互式REPL |
| `sajicode build [prompt]` | 一次性团队运行 |
| `sajicode init` | 初始化项目上下文 |
| `sajicode status` | 团队状态 |
| `sajicode standup` | 每日报告 |
| `sajicode resume` | 从LangGraph检查点恢复 |
| `sajicode config` / `config-doctor` | 配置和验证 |
### 安全
| 命令 | 描述 |
|:--|:--|
| `sajicode revert` | 恢复会话(或 `--agent <name>`) |
| `sajicode undo [file]` | 从快照恢复 |
| `sajicode snapshots` | 列出快照 |
| `sajicode audit` | 安全代理通道 |
### 自主性和运维
| 命令 | 描述 |
|:--|:--|
| `sajicode daemon start\|stop\|status\|deploy\|install` | 始终在线的有机体 |
| `sajicode task add\|list\|cancel` | 持久任务队列 |
| `sajicode serve` | HTTP服务器 + 通道 + A2A |
| `sajicode guardian scan\|incidents` | 防御性SOC |
| `sajicode fix-ci` | CI失败 → 无头修复 |
| `sajicode eval` | 评估环境 |
| `sajicode sbom` / `costs` | SBOM和用法成本 |
### 可扩展性
| 命令 | 描述 |
|:--|:--|
| `sajicode skill …` | 列出/新建/添加/检查技能 |
| `sajicode mcp …` | 管理MCP服务器 |
| `sajicode plugin …` | 插件 |
| `sajicode persona …` | 角色和商业MCP模板 |
### REPL斜线命令
`/init` · `/status` · `/help` · `/clear` · `/exit`
---
## 会话流程
每个会话都以相同的方式开始:
```text
会话状态 → 内存索引 → PROJECT.dna → 站会 → 堆栈模式
→ 分类 → 计划 → (第0阶段合同) → 并行调度 → 验证 → 更新DNA
```
Git隔离是自动的:会话分支,标记前,每个代理的提交。 一个命令恢复所有内容 — 或一个代理。
---
## 配置
项目设置存储在`.sajicode/config.json`。
### 提供商
```bash
sajicode -p anthropic -m claude-sonnet-4-6
sajicode -p openai -m gpt-4.1
sajicode -p google -m gemini-2.5-flash
sajicode -p ollama -m llama3.1:70b # 本地 / 隔离
sajicode -p openrouter -m anthropic/claude-sonnet-4
```
```bash
ANTHROPIC_API_KEY=...
OPENAI_API_KEY=...
GOOGLE_API_KEY=...
TAVILY_API_KEY=... # 可选的网络搜索
```
### 人机协作
```json
{
"humanInTheLoop": {
"enabled": true,
"tools": {
"execute": { "allowedDecisions": ["approve", "edit", "reject"] }
},
"allowedCommands": ["npm run", "node ", "npx tsc"]
}
}
```
### 有用的键
| 键 | 目的 |
|:--|:--|
| `modelConfig` | 提供者,模型,路由层 |
| `riskTolerance` | `low` / `medium` / `high` shell严格程度 |
| `budget` | 每会话成本上限 |
| `compression` | 提示压缩 |
| `a2a` / `guardian` | 互操作性和SOC设置 |
| `asyncSubagents` | 背景领导调度 |
随时验证:
```bash
sajicode config-doctor
```
---
## 项目布局
初始化/首次会话后:
```text
your-project/
├── SAJICODE.md # 生成的项目上下文
├── PROJECT.dna # 持久的团队大脑
├── HEARTBEAT.md # 守护进程检查清单(可选)
└── .sajicode/
├── config.json
├── mcp.json
├── persona.md
├── codegraph.json # 树状AST知识图
├── contracts.json
├── patterns.json
├── experiences.json
├── checkpoints.db # 持久的LangGraph状态
├── snapshots/
└── transcripts/
```
---
## 技能和插件
23+捆绑技能(Agent Skills标准) — 按需加载:
`nodejs` · `nextjs` · `frontend-design` · `database` · `api-architect` · `testing` · `security` · `devops` · `ai-engineer` · `mobile-app` · `mcp-server` · …
```bash
sajicode skill list
sajicode skill new my-domain
sajicode plugin search
```
---
## 为什么选择SajiCode
| | 典型的编码代理 | SajiCode |
|:--|:--|:--|
| 形状 | 一个代理循环 | **优先考虑合同的并行团队** |
| 记忆 | 每次聊天重置 | **DNA + 技能 + 语义 + 整合** |
| 错误 | 难以撤销 | **每次代理git恢复/会话** |
| 大型仓库 | 更多的上下文 | **代码图 + 排名检索** |
| 始终在线 | 只有你打字时 | **守护进程 + 心跳 + 任务队列** |
| 防御 | — | **守护者集群** |
| 互操作性 | 关闭或仅MCP | **MCP + A2A + 插件** |
| 运行位置 | 供应商云 | **您的机器,CI,无服务器,隔离** |
MIT许可。npm发布。构建为**harness** — 而不是另一个聊天机器人。
完整功能和工具参考:[`SajiCode_features.md`](./SajiCode_features.md)。
---
## 开发
```bash
git clone https://github.com/RaheesAhmed/SajiCode.git
cd SajiCode
npm install
npm run build
npm test
node dist/index.js
```
```text
src/
├── agents/ # 项目经理,领导者,任务图,护栏,辩论
├── a2a/ # 代理到代理服务器 + 客户端
├── guardian/ # SOC集群和事件
├── daemon/ # 心跳,部署后端,服务安装
├── context/ # 树状AST代码图,压缩
├── persona/ # 身份包
├── tasks/ # 持久队列
├── memory/ # DNA,语义记忆,整合
├── tools/ # 合同,git会话,验证,浏览器
├── channels/ # 终端,WhatsApp
├── cli/ # Commander CLI + 渲染器
└── server/ # HTTP服务 + A2A安装
```
| 脚本 | 操作 |
|:--|:--|
| `npm run build` | 编译 → `dist/` |
| `npm run dev` | 从源代码运行 |
| `npm test` | Vitest |
| `npm run eval` | 评估环境 |
---
## 许可证
[LICENSE](/LICENSE) MIT © [Rahees Ahmed](https://github.com/RaheesAhmed)
<p align="center">
<a href="https://www.npmjs.com/package/sajicode">npm</a> ·
<a href="https://github.com/RaheesAhmed/SajiCode/issues">问题</a> ·
<a href="https://github.com/RaheesAhmed/SajiCode/discussions">讨论</a>
</p>
连接信息
猜你喜欢
暂无推荐服务器