chore(prompt): AGENT/QC prompt 及工具描述里 repos/ 旧表述改 projects/apps/modules 新路径
This commit is contained in:
parent
20852b2254
commit
2659284e05
@ -431,11 +431,11 @@ AGENT_TOOLS = [
|
||||
{"name":"write_file","description":"写入文件(自动创建父目录)","params":{"path":"相对路径","content":"文件内容"}},
|
||||
{"name":"list_files","description":"列出目录内容","params":{"path":"相对路径(可选,默认工作空间根)"}},
|
||||
{"name":"run_shell","description":"在工作空间中执行shell命令","params":{"command":"命令"}},
|
||||
{"name":"git_clone","description":"克隆git仓库到工作空间repos/下","params":{"repo_url":"仓库URL","repo_name":"仓库目录名(可选,默认从URL推断)","branch":"分支(可选,默认main)"}},
|
||||
{"name":"git_status","description":"查看git仓库状态","params":{"repo_dir":"仓库子目录(可选,默认repos下第一个)"}},
|
||||
{"name":"git_clone","description":"克隆git仓库到机构工作空间(应用→apps/、模块→modules/)","params":{"repo_url":"仓库URL","repo_name":"仓库目录名(可选,默认从URL推断,_app后缀→apps/)","branch":"分支(可选,默认main)"}},
|
||||
{"name":"git_status","description":"查看git仓库状态","params":{"repo_dir":"仓库子目录(可选,默认 apps/modules 下第一个)"}},
|
||||
{"name":"git_commit_push","description":"git add + commit + push(develop 用它提交模块仓库本地提交作为产出证据;无远程只 commit 不 push,非 git 目录自动 init)","params":{"message":"提交信息","repo_dir":"仓库子目录(可选)"}},
|
||||
{"name":"ask_question","description":"向用户提问(缺少信息时使用)","params":{"question":"问题"}},
|
||||
{"name":"deliver","description":"提交最终交付件(代码/文档文件已用write_file写好时调用)","params":{"deliverable_type":"交付件类型(如code_files/design_doc)","summary":"概述","result":"交付件正文","files":"JSON数组[{\"path\":\"repos/仓库/src/x.py\",\"content\":\"代码内容\"}](可选)"}},
|
||||
{"name":"deliver","description":"提交最终交付件(代码/文档文件已用write_file写好时调用)","params":{"deliverable_type":"交付件类型(如code_files/design_doc)","summary":"概述","result":"交付件正文","files":"JSON数组[{\"path\":\"modules/{模块}/src/x.py\",\"content\":\"代码内容\"}](可选)"}},
|
||||
]
|
||||
|
||||
AGENT_SYSTEM_PROMPT = """你是软件开发产线中的「__ROLE__」角色Agent。
|
||||
@ -459,7 +459,7 @@ __TOOLS__
|
||||
|
||||
## 工作流
|
||||
1. 先用 read_file/list_files 了解现有代码
|
||||
2. 用 write_file 产出代码文件到 repos/ 下
|
||||
2. 用 write_file 产出文件到 projects/{项目}/、apps/、modules/ 下(路径基准是上方「工作空间」= 机构工作空间)
|
||||
3. 用 run_shell 验证(编译/测试)
|
||||
4. 用 deliver 提交最终交付件(git 提交由 PM 审核通过后系统统一执行,无需你提交)
|
||||
|
||||
@ -468,7 +468,7 @@ __TOOLS__
|
||||
{"action":"tool_call","tool":"工具名","params":{}}
|
||||
|
||||
提交交付件:
|
||||
{"action":"deliver","deliverable_type":"code_files","summary":"概述","result":"文档内容","files":[{"path":"repos/仓库/src/file.py","content":"代码"}]}
|
||||
{"action":"deliver","deliverable_type":"code_files","summary":"概述","result":"文档内容","files":[{"path":"modules/{模块}/src/file.py","content":"代码"}]}
|
||||
|
||||
提问:
|
||||
{"action":"ask","question":"问题"}
|
||||
@ -561,7 +561,7 @@ __ROLE_SKILLS__
|
||||
QC_SYSTEM_PROMPT = """你是质量控制工程师(QC)。对交付件做合规检查和质量检查,不合规直接退回重做。
|
||||
|
||||
## 检查维度
|
||||
1. 项目规范检查:产出是否按 SDLC 仓库标准路径/命名/格式产出——先用 load_skill 加载 project-directory-spec 拿到权威目录结构与路径,再据此检查(交付文件都在 repos/ 下,不要凭记忆在工作空间根找 docs/、apps/ 等目录)
|
||||
1. 项目规范检查:产出是否按 SDLC 仓库标准路径/命名/格式产出——先用 load_skill 加载 project-directory-spec 拿到权威目录结构与路径,再据此检查(交付文件在机构工作空间的 projects/{项目}/docs/、apps/、modules/ 下,不要凭记忆找旧 repos/ 目录)
|
||||
2. 项目过程规范:是否遵循各阶段流程规范(develop 是否实际产出代码文件、test 是否覆盖充分、deploy 配置是否完整、requirement 是否明确部署环境需求)
|
||||
3. 产出质量:内容是否完整、可量化、可验收、无重大缺陷、无空泛套话
|
||||
|
||||
@ -1290,7 +1290,7 @@ async def _build_role_skills_block(sor, project_id, role, org_id=""):
|
||||
for s in skills[:60]:
|
||||
tag = SCOPE_TAG.get(getattr(s, 'scope', ''), getattr(s, 'scope', ''))
|
||||
lines.append(f"- [{tag}] {s.name}: {(s.description or '')[:100]}")
|
||||
# 项目模块技能:workspace repos/*/skill/SKILL.md(模块怎么用——架构/数据模型/挂载函数/坑位),
|
||||
# 项目模块技能:机构工作空间 modules/*/skill + apps/*/skill/SKILL.md(模块怎么用——架构/数据模型/挂载函数/坑位),
|
||||
# 运行时扫描注入,让项目角色知道引用了哪些模块、每个模块怎么挂载(load_xxx 入口/库名/坑)。
|
||||
try:
|
||||
ws = await _get_space_dir(sor, project_id)
|
||||
@ -1358,7 +1358,7 @@ async def _load_skill_by_name(sor, project_id, role, org_id, name, file_path=Non
|
||||
merged = loader.get_merged(pipeline_id=pid, role=role,
|
||||
project_id=project_id, org_id=org_id or '0')
|
||||
if name not in merged:
|
||||
# 项目模块技能(workspace repos/*/skill/SKILL.md)不在 skill_loader 静态树里,运行时补查。
|
||||
# 项目模块技能(机构工作空间 modules/*/skill + apps/*/skill)不在 skill_loader 静态树里,运行时补查。
|
||||
# 全文层对齐 skill_loader.to_prompt_block:剥离 frontmatter 只返回正文(body)。
|
||||
try:
|
||||
ws = await _get_space_dir(sor, project_id)
|
||||
@ -1435,7 +1435,7 @@ async def role_agent_run(project_id, role, agent_id=None, model_name=None):
|
||||
|
||||
# 注入角色技能(角色专属技能全量 + 其余 scope 目录层,优先级 角色>项目>产线>组织>通用)
|
||||
role_skills = await _build_role_skills_block(sor, project_id, role, org_id)
|
||||
# 项目名(用于 prompt 里 {项目名}_pc 占位符替换,角色产出路径以 project-directory-spec 为准)
|
||||
# 项目目录名(英文 slug,用于 projects/{项目}/ 路径;产出路径以 project-directory-spec 为准)
|
||||
project_name = await _get_project_name(sor, project_id)
|
||||
project_dir = os.path.join(space_dir, 'projects', project_name) if project_name else space_dir
|
||||
# 能力工具上下文(project_id/iteration_id/who/agent_id 自动注入,LLM 不可见)
|
||||
|
||||
@ -130,7 +130,7 @@ SDL_TOOLS = [
|
||||
),
|
||||
ToolDefinition(
|
||||
name="clone_repo",
|
||||
description="克隆项目关联的仓库到工作空间repos/下(不传url则clone全部,传则clone指定)",
|
||||
description="克隆项目关联的仓库到机构工作空间 apps/modules 下(不传url则clone全部,传则clone指定)",
|
||||
parameters={"repo_url": "仓库URL(可选)"},
|
||||
category="repo",
|
||||
),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user