debug: trace LLM raw output, tool calls, history rows, system prompt env
This commit is contained in:
parent
09d51b87c7
commit
7cb23c7f88
@ -479,6 +479,7 @@ if action == 'send_message':
|
|||||||
repos_str = ', '.join([r['n'] for r in ctx['repos']]) or '无'
|
repos_str = ', '.join([r['n'] for r in ctx['repos']]) or '无'
|
||||||
env_text = f"【当前项目: {ctx['pname'] or '未选择'}】— 所有操作在当前项目内完成\n工作空间: {ctx['ws'] or '未设置'} | 仓库: {repos_str}"
|
env_text = f"【当前项目: {ctx['pname'] or '未选择'}】— 所有操作在当前项目内完成\n工作空间: {ctx['ws'] or '未设置'} | 仓库: {repos_str}"
|
||||||
system = AGENT_PROMPT.replace('__TOOLS__',TOOLS_TEXT).replace('__ENV__',env_text)
|
system = AGENT_PROMPT.replace('__TOOLS__',TOOLS_TEXT).replace('__ENV__',env_text)
|
||||||
|
debug(f"SYSTEM PROMPT env: {env_text}")
|
||||||
msgs = [{"role":"system","content":system}]
|
msgs = [{"role":"system","content":system}]
|
||||||
# Load history scoped to current project (via iteration_id = project_id)
|
# Load history scoped to current project (via iteration_id = project_id)
|
||||||
sql = "SELECT role,content FROM pipeline_conversations WHERE created_by=${u}$ ORDER BY created_at ASC LIMIT 20"
|
sql = "SELECT role,content FROM pipeline_conversations WHERE created_by=${u}$ ORDER BY created_at ASC LIMIT 20"
|
||||||
@ -486,7 +487,9 @@ if action == 'send_message':
|
|||||||
if ctx['pid']:
|
if ctx['pid']:
|
||||||
sql = "SELECT role,content FROM pipeline_conversations WHERE created_by=${u}$ AND iteration_id=${p}$ ORDER BY created_at ASC LIMIT 20"
|
sql = "SELECT role,content FROM pipeline_conversations WHERE created_by=${u}$ AND iteration_id=${p}$ ORDER BY created_at ASC LIMIT 20"
|
||||||
params = {"u":uid,"p":ctx['pid']}
|
params = {"u":uid,"p":ctx['pid']}
|
||||||
for h in (await sor.sqlExe(sql, params) or []):
|
hist_rows = await sor.sqlExe(sql, params)
|
||||||
|
debug(f"HISTORY: loaded {len(hist_rows or [])} rows, project={ctx['pid'][:8] if ctx['pid'] else 'none'}")
|
||||||
|
for h in (hist_rows or []):
|
||||||
c = getattr(h,'content','') or ''
|
c = getattr(h,'content','') or ''
|
||||||
r = getattr(h,'role','') or ''
|
r = getattr(h,'role','') or ''
|
||||||
# Skip raw tool_call JSON — prevents LLM from mimicking old tool calls
|
# Skip raw tool_call JSON — prevents LLM from mimicking old tool calls
|
||||||
@ -500,11 +503,13 @@ if action == 'send_message':
|
|||||||
for turn in range(10):
|
for turn in range(10):
|
||||||
raw = await _call_llm(model, msgs, 0.4)
|
raw = await _call_llm(model, msgs, 0.4)
|
||||||
act = _parse(raw)
|
act = _parse(raw)
|
||||||
|
debug(f"LLM turn {turn}: raw={raw[:200]}, action={act.get('action','?')}, tool={act.get('tool','?')}")
|
||||||
if act.get('action') == 'reply':
|
if act.get('action') == 'reply':
|
||||||
agent_reply = act.get('message', raw); break
|
agent_reply = act.get('message', raw); break
|
||||||
if act.get('action') == 'tool_call':
|
if act.get('action') == 'tool_call':
|
||||||
tool = act.get('tool','')
|
tool = act.get('tool','')
|
||||||
label = _tool_labels.get(tool,tool)
|
label = _tool_labels.get(tool,tool)
|
||||||
|
debug(f"TOOL CALL: {tool} params={act.get('params',{})}")
|
||||||
d = json.dumps(_w_progress(f"🔄 {label}..."), ensure_ascii=False)+'\n'
|
d = json.dumps(_w_progress(f"🔄 {label}..."), ensure_ascii=False)+'\n'
|
||||||
debug(f"YIELD progress: {d[:60]}")
|
debug(f"YIELD progress: {d[:60]}")
|
||||||
yield d
|
yield d
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user