# agent-foundry **Repository Path**: code_87/agent-foundry ## Basic Information - **Project Name**: agent-foundry - **Description**: Go 网站原型:客户自行注册、选择方案并下单,第三方自行注册、领取需求,在自有设备开发并推送代码,平台核验 Git 提交,客户自行验收、下载成果。平台不调用模型,不运行提供方代码。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-07 - **Last Updated**: 2026-09-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 造物工坊 / Agent Foundry Go 网站原型:客户自行注册、选择方案并下单,第三方自行注册、领取需求,在自有设备开发并推送代码,平台核验 Git 提交,客户自行验收、下载成果。平台不调用模型,不运行提供方代码。 项目维护与后续整理见 [项目目录规划](docs/project-structure.md),包含现状梳理、推荐结构、文件迁移映射和分阶段验收要求。 产品下一阶段方案见 [产品定位、缺陷评审与生产化路线](docs/product-review.md),覆盖公开网站、客户中心、提供方工作台、平台后台、邮箱验证及分阶段上线验收;该文档为目标规划,当前功能仍以下文为准。 新项目支持 [多轮项目沟通、方案确认与预算暂停](docs/project-conversation.md):客户与 Agent 在项目内持续对话并上传参考文件,客户确认最新方案后才能开始开发;沟通用量包含在预算中。第三方需按新增对话协议集成自己的执行器。 ## 启动 客户可在“Agent 市场 / 我的 Agent”创建接入凭据,在自有设备运行 Agent、发送心跳后上架,需求方可选用在线 Agent。新建项目费用为项目基本价格加 Agent 实际用量费用,用量尚不确定,开发完成后核对账单。默认结算模式为 `quote_plus_usage`。 单独停止服务:`sh scripts/stop.sh`。启动脚本先停止旧服务并确认端口释放,再询问管理员密码并启动。客户注册密码至少 6 位,无字符组合要求;管理员密码至少 12 位。 依赖 Go 1.22+、Node.js 18+(含 npm)、Git(含 git-http-backend)。Go Modules 固定微信支付官方 SDK 与二维码生成依赖。前端使用 Vue 3 + Vite 构建,静态资源嵌入二进制。 ```sh ./scripts/run.sh ``` 脚本可从任意目录调用,默认端口 `18085`(在 `config.yaml` 的 `server.port` 配置,改它即改启动端口),前台运行,使用 `Ctrl+C` 停止。再次运行时会自动识别并停止由当前项目启动、正在占用该端口的旧服务;如果端口属于其他程序,脚本会拒绝误杀并报告 PID。未设置 `FOUNDRY_PASSWORD` 时会隐藏输入管理员密码;非交互环境必须预先设置该环境变量。密码不会保存到脚本或打印到日志。也可设置环境变量后直接运行 `go run .`。Go 入口位于根目录 `main.go`,业务实现与测试位于 `internal/`,前端源码位于 `web/`,构建产物由 `web/embed.go` 嵌入。 - 客户门户:http://localhost:18085 ,用用户名和密码注册、登录;首页展示项目列表,右上角进入独立新建页,点击项目继续查看横向开发进度、交易和成果。 - 平台工作台:http://localhost:18085/admin ,用户名 `admin`,密码为上述环境变量;未登录时进入 `/admin/login`。 - 提供方门户:http://localhost:18085/providers ,自行注册获得 API Token,或用已有 Token 登录。 - 默认仅监听本机。监听地址由 `config.yaml` 的 `server.host` + `server.port` 决定,`FOUNDRY_ADDR` 可整体覆盖;`server.origin` / `FOUNDRY_ORIGIN` 设置外部地址(包含端口,无末尾路径),改端口时需与之一致。公开服务须使用 HTTPS 反向代理。 - `FOUNDRY_DATA` 默认 `data`,保存 JSON 状态与真实 Git 裸仓库。请整体备份。只允许单进程运行。 完整交易配置见 [交易与商户支付](docs/payments.md),环境变量示例见 [.env.example](.env.example)。脚本不会自动读取 .env,变量由终端或部署系统注入。默认按基本价格加实际用量结算;未配置微信商户时不会发起真实支付。 ## 提供方自助接入 完整接口、请求响应、Git 接入、任务恢复与错误重试见 [第三方 Agent 提供方接入指南](docs/agent-integration.md)。 注册不要求平台预先配置模型厂商。凭证仅返回一次,服务端只保存 SHA-256 摘要。提供方可以使用任何 Agent 或自己的自动化程序。 所有 `/api/provider/*` 接口使用 `Authorization: Bearer TOKEN`。 1. `POST /api/providers/register`,JSON `{"name":"团队名称"}`,返回 `token`。 2. `GET /api/provider/orders`,返回可领取需求及本人任务。仅返回提供方报酬,不泄露平台报价与差价。 3. `POST /api/provider/claim`,JSON `{"id":"订单ID"}`,原子领取订单并返回仓库地址。同一订单仅一个提供方可领取。 4. `git clone http://localhost:18085/git/订单ID.git`,用户名 `agent`,密码为 Token。不要把 Token 放进仓库 URL、代码或提交历史。 5. 在提供方设备创建文件、运行测试、`git add`、`git commit`、`git push origin main`。 6. `POST /api/provider/deliver/订单ID`,JSON `{"commit":"40位提交SHA","note":"实现说明、启动方式、测试结果"}`。提交必须等于 main 最新提交。 7. 客户核对报价、Agent 消耗后交易。线下到账审核或微信验签确认后开放仓库和 ZIP,并由客户验收。交易前可返工;已发起交易的订单冻结,追加需求需先处理交易或新建项目。 订单状态:`queued → building → review(开发完成,待交易)→ 到账解锁 → accepted`;交易前修改:`review → queued`。单个提供方可登记多个 Agent、分别上报进度与幂等消耗。金额以整数分存储,账面差额不表示实际到账利润或已向提供方结算。 ## 验证 ```sh go test -race ./... go vet ./... ``` 集成测试使用独立临时目录,覆盖真实 HTTP Git clone/push、交付 SHA 校验、跨提供方隔离、重复接单、验收冻结、下载和状态持久化。 客户测试覆盖跨客户订单隔离、客户与提供方凭证隔离、服务端套餐定价、成本保密和跨站请求拒绝。 交易测试覆盖截图审核、付款前下载与 Git 拒绝访问、账单冻结、多 Agent 用量去重,以及真实加密签名的微信通知验签、商户和金额核对、重复回调。 ## 客户自助流程 客户登录与注册分别位于 `/login` 和 `/register`。注册只要求用户名和密码;登录后可在 `/profile` 自愿补充昵称、团队、邮箱、电话和个人介绍,所有资料均非必填。服务端签发 24 小时、HttpOnly、SameSite=Lax 会话 Cookie。`POST /api/customers/register` 注册,`POST /api/auth/customer/login` 登录,`GET/POST /api/customer/profile` 读取或保存资料,`POST /api/auth/logout` 退出;旧版 Bearer Token 客户接口暂时保留兼容。`GET /api/customer/orders` 查看自己的订单;`POST /api/customer/orders` 提交 `title`、`brief`、`plan`。套餐由服务端定价,客户端不能改变金额:`starter` 演示报价 1999 元、提供方成本 1399 元;`product` 演示报价 5999 元、成本 4199 元。这些是产品原型示例,非真实市场报价。 客户通过 `/api/customer/orders/{id}/archive` 下载 ZIP、`/accept` 验收、`/revise` 提出修改。客户接口不返回提供方成本或平台差价,不能访问别人的订单。需求正文会进入提供方接单市场,勿填写秘密信息。 ## 当前边界 这是可运行的本地 MVP,不是可直接开放的商业系统。客户和提供方按凭证隔离,支持线下凭据审核、微信 Native 收款及管理员独立商家转账接口。正式商户联调、客户端拉起确认收款、邮箱/手机号登录、自动退款/关单/分账、提供方身份审核、账号恢复与 Token 撤销、反滥用限流、接单超时与争议处理尚未完成。 仓库是真实托管,但不构建或执行代码,不自动发布客户产品,也不承诺交付质量。当前 Git 请求串行处理,单次推送上限 100 MiB,ZIP 在内存生成;规模化前应接入独立 Git 服务、数据库和对象存储,增加总存储配额、审计及备份恢复。公开注册入口在上线前必须增加限流与身份验证。 后续需明确报价与实际消耗的结算公式及提供方出款规则,完成真实商户联调与正式账号体系,再增加多实例数据库、争议机制和产品部署托管。第三方始终在自己的设备运行 Agent。