Files
tw2/qingjian_cs/DEVELOPMENT_RULES.md
jimi a842f1861f
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_en (ubuntu-latest, 3.10) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_zh (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.12) (push) Has been cancelled
chore: initial import of standalone agentscope project
2026-03-02 18:21:40 +08:00

105 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Qingjian CS 开发规则(强制)
> 目标:始终按 AgentScope 官方范式开发,避免系统再次回到“规则堆砌+难维护”的状态。
## 0. 总原则
1. 框架负责智能决策与编排,业务代码负责数据与动作执行。
2. 任何新需求,优先扩展工具和状态,不优先扩展 prompt 文本。
3. WebSocket 层只做收发与调度,不写业务判断。
## 1. 架构强约束
1. 必须使用 `ReActAgent + Toolkit + structured_model`
2. 禁止在主流程里堆大量 `if/elif` 做业务决策。
3. 所有业务决策必须输出标准动作:`reply / quote / transfer / noop / update_state`
4. 执行层只消费动作,不反推业务意图。
## 2. 分层规则
1. `client.py`:仅处理连接、收发、防抖、调度。
2. `brain/*.py`:只做 Agent 决策,不做 IO。
3. `tools/*.py`:封装业务能力(报价、风控、售后、客户画像、订单)。
4. `store/*.py`:数据库读写,禁止在 Agent 里写 SQL。
5. `rules.py`:仅保留少量硬约束与 prompt 基线,不承载复杂流程。
## 3. Tool First工具优先
新增需求必须先回答:
1. 这个能力是否应成为 tool 函数?
2. 输入输出是否可结构化?
3. 是否可复用给多个 Agent
若答案为是,先建 tool再改 agent。
## 4. 多 Agent 规范
1. 路由 Agent只分发不直接处理细节。
2. 报价 Agent调用图片/尺寸/历史价工具后输出报价动作。
3. 售后 Agent基于状态机推进流程。
4. 风控 Agent输出风险等级与拦截建议。
5. Agent 间通信必须走结构化字段,禁止自由文本串联。
## 5. 数据库规范
必须落库:
1. 会话状态(当前阶段、最后动作、最后回复)。
2. 报价记录(图、尺寸、复杂度、价格、时间、操作人)。
3. 售后工单(状态流转、超时节点、责任人)。
4. 客户画像(退款率、未付款率、黑名单/备注)。
禁止:
1. 用内存 dict 作为长期状态真值。
2. 关键流程无持久化。
## 6. 回复质量规范
1. 优先自然、短句、口语化。
2. 禁止连续重复同语义句。
3. 先承接,再引导,再动作。
4. 客户无意义短句也要给最小承接。
5. 外部联系方式请求必须站内引导。
## 7. 风控规范
1. 地图/政治/黄暴等高风险必须先风控,再决定 reply/transfer。
2. 风控结果必须可审计(记录原因与触发信号)。
3. 不允许绕过风控直接外发。
## 8. 代码规模规范
1. 单文件建议 <= 500 行,超过必须拆分。
2. 新增功能默认新模块,不在老文件硬塞。
3. 重复逻辑出现第二次必须提取函数/工具。
## 9. 日志与可观测性
1. 每次动作必须有活动日志:`trace_id/customer_id/event/result`
2. 关键节点必须可追踪:入站、决策、工具调用、出站、失败。
3. 错误日志必须包含可复现上下文(脱敏后)。
## 10. 测试与发布
1. 每次改动至少覆盖:打招呼、发图、询价、售后、转人工、风险场景。
2. 新增规则必须加回放样例golden case
3. 未通过关键回放,不允许合入。
## 11. 变更流程(每次开发都执行)
1. 先写:需求 -> 动作模型 -> 工具接口 -> 状态变更。
2. 再写代码tool -> agent -> orchestrator -> storage。
3. 最后验证:回放测试 + 日志检查 + 重复回复检查。
## 12. 禁止事项
1. 禁止把复杂业务塞进单个 prompt 企图一次性解决。
2. 禁止继续扩张“关键词硬编码回复库”。
3. 禁止把数据库逻辑散落在 websocket/client 层。
4. 禁止无日志的关键动作。
---
执行口令(开发前先读一遍):
- 先工具化,再智能体化,最后才是话术优化。
- 决策结构化,执行单一化,状态持久化。