Accordo
Accordo
向你的编码代理描述你的销售流程;拥有它构建的 CRM。
这是一个开源框架,Claude Code、Codex 和 Gemini CLI 使用它来生成一个以归你所有的代码形式存在的 CRM 应用——内置确定性工作流、策略门控的人工审批、审计和追踪。
名字已经选定,域名已经注册。npm create accordo 会从已发布的 create-accordo@0.1.0 搭建一个可工作的项目;accordo 包本身仍是一个空的 0.0.1 名称预留——没有任何东西会把该框架作为库安装——并且 @accordo 作用域已被声明,并有意保持为空。尚未进行商标筛查,而且该项目不可部署到生产环境。其确切含义见它止步于何处,在阅读其余内容之前值得先读一下。
Business request
↓ "Renewals of €50,000 or more need a manager's sign-off."
Claude Code / Codex
↓ reads AGENTS.md · 12 skills · MCP · `crm app inspect`
Modules + deterministic workflows + versioned policy
↓
API + Admin + trace + audit — in your repository, as code you review何时使用 Accordo
Custom CRM: 当商业流程本身就是产品,且结果应该是可审查的代码,而不是别人运行时里的配置时。
客户中心: 当“中心”指的是一条本地商业记录链,并带有受治理的操作时。Accordo 不像 CDP 那样摄取数据源或解析客户身份。
智能 CRM: 当编码代理应组合应用程序,而版本化策略和具名人员保留业务决策权时。它是代理构建的软件,而不是自主决策者。
CDP + CRM: 当外部 CDP 负责数据摄取、身份解析和受众,而 Accordo 在旁边拥有确定性的 CRM 流程层时。Accordo 不附带任何 CDP、连接器、导入器或同步运行时。
这些相邻术语是检索路径,而不是额外能力的声明。已检入的推荐映射图将每一项与框架证明了什么、止步于何处绑定起来。
Related MCP server: Pathmode
为什么存在
每个 CRM 最终都会要求你调整自己的流程,去适配它的模型。两种常见的出路都要付出代价:
配置一个平台 —— 上手很快,但你的自定义以元数据的形式寄居在别人的运行时里。当达到天花板时,你就得 fork 一个 monorepo。
从零构建 —— 完全自由,但每个团队都要重新推导校验、管道语义、审批和审计。通常是在项目后期,通常是在压力之下。
这个框架是第三种选项:代理生成应用程序,而框架提供团队在截止日期前总是搞错的部分。任何开发人员都可以用这个测试来判断:“如果这个项目明天消失了,我还剩下什么?” 而这里的答案是:你仓库中的一个 Node 应用,没有第三方运行时依赖,还有一个任何客户端都能打开的 SQLite 文件。
已经验证了什么
下面的每一行都与一个已合入的测试绑定。完整账本——声明、证据,以及随之而来的边界——在 site/claims.json 中,其背后的评审规范是 docs/QUALITY_GATES.md。
能力 | 边界 | 证据 |
一个模块清单会变成一次迁移、一个服务、一个 REST 资源、一个 SDK 方法和 Admin 界面,且无需页面代码 | 仅生成式 CRUD——自定义对象的工作流和审批仍须手写 |
|
生成的对象相互引用:外键、运行时目标校验、Admin 选择器 | 仅支持已生成对象间的多对一;没有多对多、反向集合或级联 |
|
确定性审批策略:达到或超过阈值的续订会等待一个具名人员 | 内置续订对象和一个数值阈值 |
|
代理无法代替人类做出审批决定 —— 由测试断言,而非由约定断言 | 行为者被断言,而非被认证;这针对的是诚实代理,而非攻击者 |
|
商机在代码优先的管道阶段中推进,操作以服务端为权威——客户端请求,服务端决定 | 已在内置 Opportunity 模块上验证;不为生成的自定义对象声称可配置管道 |
|
线索捕获、丰富化、可解释的版本化评分、确定性路由、资格认定、转化 | 丰富化针对 fixture 提供程序运行;未接入真实数据源 |
|
服务端定价的组合报价、不可变的报价版本、带审批的版本化折扣策略 | fixture 目录提供程序;整数美分、无 FX——货币永不加总 |
|
签名信封 → 已验证事件 → 已签名工件证据 → 恰好一个不可变订单 | fixture 签名提供程序、仅测试用 webhook 密钥、提供程序报告的工件哈希 |
|
订单激活为合同、不可变版本、订阅和待履行义务 | 不执行计费、续订、修订或取消;没有调度器 |
|
交付交接到一个包含工作包、里程碑和可选合作伙伴的项目;由人驱动的执行 | 不进行调度、人员配置、验收或计费;交付物不作为对象存在 |
|
仅追加的工时与费用证据,按版本化策略计价,并给出可复现的贡献估算 | 刻意不算毛利:不确认收入、不计 COGS、不计 ARR/MRR、无 FX |
|
客户编写的领域包可挂载和卸载,且内核指纹保持不变 | 用于启动它的脚手架只会写入一个空包,不会做其他任何事情;没有注册表、没有发布、没有沙箱——包代码以宿主的权限运行 |
|
| 它不发明业务逻辑、不组合任何内容、不验证全局标识唯一性,也不安装或发布任何内容 |
|
| 从不打开数据库、联系提供程序或读取机密——并在自己的输出中说明这一点 |
|
| 它是文档契约,不是规划器,也不是运行时;不执行任何计划 |
|
| 覆盖率由场景声明,而非发现;它不提升任何行,不驱动浏览器,每次运行只代表一种组合 |
|
生成的模块通过显式修订和仅追加的命名迁移进行演进 | 仅源码层面:特定数据库实际应用了什么,从这里无法得知 |
|
整个测试套件在每次推送时都会运行,连同冒烟测试一起。具体有多少个测试,以及测量时所对应的提交,都记录在 site/claims.json 的 measuredAgainst 下——这是本仓库中唯一写下测试数量的地方,也是 npm run gtm:check 允许数字出现的唯一位置。
运行它
Node.js 22.16 或更高版本。没有第三方运行时依赖,也没有构建步骤。
npm run tour # compose the whole application and inspect it
npm run verify # source checks, then the whole test suite
npm run falsify # break five rules on purpose and watch the suite catch them
npm run demo # the approval slice, end to end
npm run dev # http://localhost:4000npm run tour 是了解这到底是什么的最快方式。仓库的默认组合被有意设为空——项目会写出它自己想要的组合——所以在新克隆的仓库上运行 crm app inspect 不会报告任何内容。该 tour 会将启动安装器(与 CI 每次推送时运行的同一个)运行到它保留的一个目录中,然后检查结果:
modules 76 resources 71 policies 7
packages 9 actions 64 providers 1
production posture — local development only: no authentication, tenancy or RBAC
exists, and actor headers are not identity它以检查员说无法看到的十一件事作为结尾,因为一场只展示好的一半的导览不值得运行。npm run tour -- --keep ./demo 留下项目供探索;--json 打印机器可读的收据。
npm run falsify 是另一个方向。测试数量说明写了多少;它并不说明要让一个测试保持绿色需要出什么错。因此它一次移除一条规则——审批的人工参与者守卫、审批阈值的边界、webhook 签名验证、策略版本不可变性、完全托管的模块不产生公开写入的规则——运行本应捍卫它的测试套件,并指出捕获它的那个测试。它拒绝在未提交的更改上运行,并恢复它触碰的每个文件。任何存活下来的东西都被打印为缺口,因为那才是有用的输出
(docs/FALSIFY.md、tests/falsify.test.js)。
npm run demo 创建两个续约,并在每次推送时由 scripts/smoke.js 断言:
€20,000 → 直接移至 Proposal。
€80,000 → 停在 Approval Pending,直到经理决定。
从编码代理使用它
Claude Code 读取 CLAUDE.md、.mcp.json 和 .claude/skills/。Codex 读取 AGENTS.md
和 .codex/config.toml。两者都已签入并连接在一起。
Read AGENTS.md, PRODUCT.md and docs/PROJECT_STATUS.md.
Run npm run crm -- app inspect --json.
Tell me which parts of my commercial process this already supports, and which it does not.一个测试平台只需要:运行命令、读取 stdout、读取退出码、解析 JSON,以及读写文件。不需要 MCP 服务器、不需要网络、不需要凭据、不需要数据库、不需要长驻进程——docs/AGENT_HARNESS_COMPATIBILITY.md。
npm run crm -- app inspect --json # what this application contains
npm run crm -- solution check plan.json # is this plan still valid against it退出码就是契约:0 有效 · 1 有问题,报告仍会打印 · 2 不可读。
MCP 服务器通过 stdio 运行(node --no-warnings packages/mcp/bin/server.js),并暴露
项目检查、机会列表、阶段变更请求、审批决策、运行轨迹和模块脚手架。生成代码和破坏性工具在未传入显式 apply 标志时均为 dry-run(tests/mcp.test.js、tests/scaffold.test.js——docs/MCP.md)。
它仅支持 stdio 且仅限本地:没有托管或需认证的 MCP 端点,服务器继承启动它的进程的权限。
止步之处
在评估以上任何内容之前,请先阅读此节。docs/benchmarks/CRM_JTBD_MATRIX.md 以保守的状态词汇跟踪每个 CRM 任务,其中不支持是默认状态,离开该状态需要证据。
无认证、无租户、无 RBAC。 服务器仅限本地开发;actor 头是一个断言,而非身份。不要将其暴露到网络。
仅 SQLite。 PostgreSQL 在 Production Spine 轨道上,尚未实现。
构建基准尚未运行。 不存在 Successful Agent Build Rate。任何归于此项目的百分比都是捏造的——
docs/strategy/CRM_BUILD_BENCHMARK.md是协议,而非结果。无调度器、无提醒、无定时任务。 Follow-up Tasks 和 Activity 时间线作为一个共享模型存在(
docs/WORK_TASKS.md),每一步都由人来推动:到期日不改变任何状态,不存在任何重复性事件,不分配、不通知,续约通知期被记录但从不触发。无邮件、日历或营销集成。 存在通知提供者契约;没有任何适配器向任何人发送任何内容。
无导入、导出、去重、合并、批量编辑、保存视图或全局搜索。 这些是每个商业 CRM 的基本要求,而它们都还没有里程碑。
你还不能把真实客户数据放进去。 没有认证、没有租户、没有导出、没有删除路径——因此数据主体的访问或删除请求无法用它来满足。
docs/strategy/DATA_GOVERNANCE.md仅是设计文档。唯一成立的一点是:线索评分是确定性的、有版本化的、可解释的,而不是模型对一个人的判断。这是一个框架,不是你可以注册的产品。 没有托管 CRM、没有免费层、没有账户。输出是一个你运行的应用程序。
所有权意味着供应商源码内嵌:没有框架依赖需要升级。
npm create accordo——已发布的create-accordo@0.1.0——通过将框架源码复制到项目中,搭建一个能启动、从app inspect报告valid并从project doctor以 0 退出的项目;同样的引导程序也可以从检出中运行(node packages/create-accordo/bin/create-accordo.js <dir> --apply,无需安装、无需网络——tests/project-bootstrap.test.js)。注册表交给你的只是脚手架,而不是框架:accordo包是一个空的0.0.1名称预留,这是有意为之。框架被内嵌到项目中,因此你完全拥有结果——而升级意味着合并,而不是升级版本号。
五个文件夹中的架构
packages/core/ the runtime platform: registry, services, workflow engine, audit
packages/modules/ CRM domain primitives
packages/domains/ optional domain packages (contracts, delivery) on a public contract
packages/mcp/ tools and context exposed to coding agents
apps/ API server and generated Admin代理从不写入数据库表。它调用服务方法和命名工作流,这些工作流保留验证、参与者身份、策略、轨迹和审计——ARCHITECTURE.md。
文档
阅读此文档 | 用途 |
代理在修改代码前必须遵守的规则 | |
产品是什么、不是什么 | |
技术模型及其扩展规则 | |
决策日志,ADR-001 … ADR-020 | |
仓库中今天为真的内容 | |
每个 CRM 任务、其状态及其证据 | |
评审纪律,包括对抗性评审类别 | |
品类、定位、路线图、指标 | |
这如何触达人群,以及什么被门控在人工决策上 |
许可证
MIT,由 ADR-023 确认。
This server cannot be installed
Maintenance
Related MCP Servers
- -license-quality-maintenanceEnables generation of enterprise-grade software templates with built-in GDPR/Swedish compliance validation, workflow automation for platform migrations, and comprehensive template management through domain-driven design principles.

Pathmodeofficial
AlicenseAqualityBmaintenanceSocratic AI that turns vague problems into structured intent specs — objective, outcomes, edge cases, constraints. Zero-config locally, or team mode for evidence, dependency graphs, and governance. Ships 7 auto-triggering Claude Code skills. Build the right thing.20842MIT- FlicenseAqualityCmaintenanceGenerates complete, production-ready REST, GraphQL, and microservice APIs with built-in security, validation, and deployment configurations.5
- AlicenseBqualityDmaintenanceEnables orchestrating secure software development pipelines with domain-specific compliance (HIPAA, PCI-DSS, etc.), generating pseudocode, threat models, and CI/CD from user stories via natural language.17MIT
Related MCP Connectors
Agent-native CRM. 25 tools — contacts, deals, sequences, enrichment waterfall, audit log.
Runtime AI governance: decision gates, human approval, hash-chained audit, compliance mapping.
Deterministic compliance and vertical knowledge bases for autonomous agents. Free 24hr trial.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/khaoss85/agent-crm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server