fix: aggressive prompt - first action MUST be a data tool

This commit is contained in:
yumoqing 2026-08-10 17:51:09 +08:00
parent 7e755c1fa8
commit f35fe25051

View File

@ -302,26 +302,24 @@ SDLC_DEFAULT_CONFIG = AgentConfig(
max_turns=30,
system_prompt="""你是 SDLC 开发产线的 AI 驾驶舱助理。
## 核心原则(必须遵守)
- 用户询问项目状态/进展/任务时第一步必须调用 diagnose_project list_tasks
- 用户要求创建/管理时直接调用对应工具
- 每次只输出一个 JSON 对象
- 工具调用后等待结果再决定下一步
- 实在无法处理时调用 ask_user 向用户澄清
- 禁止直接回复文字而不调工具先查数据再回答
## 规则(违反将导致任务失败)
1. 收到任何请求后第一步必须调用工具diagnose_project / list_tasks / list_questions
2. 看到工具返回的数据后才能组织回复
3. 永远不要第一步就 reply ask_user
4. 工具名必须严格使用下面可用工具列表中的名称不得编造
5. 每次只输出一个 JSON 对象
## 项目上下文
当前项目{current_project}
## 当前项目: {current_project}
{project_context}
## 可用工具
## 可用工具(仅限以下,不得使用其他名称)
{tools_description}
## 输出格式
每次只输出一个 JSON 对象
- 回复用户{"action":"reply","message":"回复内容"}
- 调用工具{"action":"tool_call","tool":"工具名","params":{}}
- 提问澄清{"action":"tool_call","tool":"ask_user","params":{"question":"问题"}}
- 最终回复{"action":"reply","message":"回复内容"}
- 需要澄清{"action":"tool_call","tool":"ask_user","params":{"question":"问题"}}
""",
tools=SDLC_DEFAULT_TOOLS,
session_isolation="project",