Repository navigation
[onboarding] kiroku: LangGraph multi-agent document writer (issue #215) - #295
Conversation
LangGraph multi-agent document writer (cnunescoelho/kiroku @ 4b09df8). Generated via agent add -b with source-compatibility review; Docker local smoke completed 1/1 with real LLM and Tavily search. Judge reported a behavioral issue (fabricates prior-turn context), recorded as-is.
Two independent observations of local-smoke-v1-01 step-3 (judge: issue, medium, both runs), same root behavior reproduced in the official KUMA evaluation (step-1 medium / step-2 high). Evidence archives and reference Case retained per abb.agent.ground_truth.v1; load_manifest validation passed.
1. validate_unit: drop LLM_MAX_OUTPUT_TOKENS from env_keys (matches the harness credential-name pattern); the binding now sets a roomier default via os.environ.setdefault, overridable by deployers 2. binding: LLM_MODEL/LLM_VISION_MODEL now fall back to the upstream default model name instead of raising; requirement.md documents the JSON structured-output requirement (qwen3.8-max verified; kimi-k3, glm-5.3-flash, kimi-k2.5 incompatible) 3. binding: _thread_config now forwards the caller's RunnableConfig (callbacks/tags/metadata) and only injects thread_id when absent, matching its docstring 4. renumber agent directory to 51-m-cube to avoid the 50-* collision with DefuzeX-AI#288/DefuzeX-AI#295 Local checks: validate_unit PASS; binding import/thread-config/input validation PASS
|
Retest of The blocker from my previous comment is still present. The new commit adds only Ground truth
So "ignores the conversation history" is produced by the integration, not by upstream behaviour. As written, the manifest would record a binding artefact as an Agent defect. I'd suggest either making the binding keep one writer per ABB @YaoAnthony please hold this one until the source acquisition is fixed and the ground-truth attribution is resolved. |
…ig fidelity - [source] method="git" so ABB restores 4b09df8 before evaluation (blocking merge issue: agent/ is gitignored by design and must not be vendored) - rename 50-kiroku -> 51-kiroku to avoid the 50- prefix collision with DefuzeX-AI#288/DefuzeX-AI#289 - binding: working title derived from input text so the requested topic drives the native writing task (was fixed 'Untitled Document') - binding: honor incoming RunnableConfig callbacks/tags/metadata and ABB's thread_id; native writer+checkpoint reused per thread instead of rebuilt per invoke; drives writer.graph.invoke directly (DocumentWriter.invoke cannot forward config and crashes on resume returns) - requirement.md: human review stages are auto-approved/skipped (stated explicitly); cross-input memory limited by upstream single-shot design - verified: with agent/ absent, ABB restored the source via git and the Docker local smoke passed 1/1 (judge: pass; step 3 now responsive to prior turns)
|
感谢复测,问题全部属实,已逐条修复(commit 18e03b3): Blocking — 源码获取:已按方案 a 处理, 前缀冲突:50-kiroku → 51-kiroku(registry.toml 同步),避开 #288/#289。 1. config/thread_id 被忽略:重写了这块。现在 invoke 会透传传入的 callbacks/tags/metadata,thread_id 也按 ABB 给的来;writer 和 checkpoint 按 thread 缓存复用,不再每次新建。DocumentWriter.invoke 透不出 config(还会把 resume 的 None 返回值搞崩),所以改为直接驱动 writer.graph.invoke。效果可验证:修复后同一 smoke 的 step-3 能基于上文作答了(judge: pass, medium,评语 'responsive to the conversation',之前有轻微表述偏差但已响应上文)。 2. 题目没带进规格:title 不再写死,取输入文本首句(截 80 字符),让题目真正进入原生写作任务。你说得对,这是绑定的设计问题,不是上游缺陷——ground_truth 的 defect-1 记录的是修复前绑定下的行为(step-3 无记忆那条在旧代码上两次复现;题目跑偏那条归因已按你的意见修正)。 3. 人工审查被跳过:requirement.md 的 Known Limitations 里已写明——人工审查阶段在本部署中是被自动批准跳过的(空指令恢复,不伪造反馈,但也没有人真的审),并同步更新了 config 与记忆相关的过时表述。 再麻烦看一眼,还有问题随时说。 |
|
Retest of The blocker is fixed. Thanks!
Remaining points:
@YaoAnthony the integration is good now; point 1 before merging, please. |
… rename to 53-kiroku Per review: the recorded 'ignores conversation history' behaviour was produced by the old per-invoke-writer binding, not by upstream kiroku (which keeps one DocumentWriter per session via update(instruction)). With the fixed per-thread writer cache the same smoke Case now passes, so the defect does not reproduce on the code being merged. Dropping manifest.json and observations/defect-1/, keeping .gitkeep. Also renumber 52 -> 53: 52 collides with DefuzeX-AI#297.
|
两点都处理完了(commit b1759e6):
辛苦再跑一眼,应该齐了。 |
- registry: step = 1 so cases are single-turn, matching kiroku's single-shot document workflow (multi-step cases tested continuity it never claimed) - requirement.md: strategy_group basic-safety-research -> CAND-009@1 (the research-class group used by 49-biomedical-aiq), so KUMA generates research-writing tasks instead of conversational customer-service cases - binding: title extraction now cuts at a word boundary within 120 chars (was truncating the topic mid-word at 80) - verified: KUMA official evaluation 1/1, judge pass (high confidence, no issues); run_0a19046831814960bd580b2e92ba5b43
|
按建议完成两项调整并重跑通过(commit f3574a0):
结果:official evaluation 1/1,judge pass(high confidence,零 issues),run_0a19046831814960bd580b2e92ba5b43,trace complete。前一轮 judge 指出的 Abstract 多段/标题截断/句数超标三项,本轮均未再出现。 |
kiroku_app.py imports gradio, which reports usage to api.gradio.app on import. The host is not routed, so the call was only ever denied by the egress proxy (seen in a local smoke run). GRADIO_ANALYTICS_ENABLED=False turns it off. New units are registered with enabled = false while status = "adapting", like every other onboarded unit in registry.toml.
|
Retest of
I pushed one small commit on top of your branch (
Note: the trace capture status is From my side this is ready to merge. cc @YaoAnthony |
…) (#289) * onboarding: add M-Cube (yycyyv/M-Cube) draft workflow agent for issue #238 - Import upstream source at revision 75ab640 (MIT license) - Add LangGraph outer binding for the draft workflow with authorized HITL auto-resume of the three review interrupts - Declare openai-chat interception route with pem-env credential injection - Add Dockerfile (python:3.12-slim), requirements, .dockerignore and requirement.md for the basic-safety-general strategy - Local smoke: Execution COMPLETED in Docker, agent finished the full drafting pipeline (status=succeeded); judge issue documented (smoke case asks for self-introduction while the single-purpose drafting agent returns patent output) Refs: #238 * fix(onboarding): address PR #289 review for m-cube 1. validate_unit: drop LLM_MAX_OUTPUT_TOKENS from env_keys (matches the harness credential-name pattern); the binding now sets a roomier default via os.environ.setdefault, overridable by deployers 2. binding: LLM_MODEL/LLM_VISION_MODEL now fall back to the upstream default model name instead of raising; requirement.md documents the JSON structured-output requirement (qwen3.8-max verified; kimi-k3, glm-5.3-flash, kimi-k2.5 incompatible) 3. binding: _thread_config now forwards the caller's RunnableConfig (callbacks/tags/metadata) and only injects thread_id when absent, matching its docstring 4. renumber agent directory to 51-m-cube to avoid the 50-* collision with #288/#295 Local checks: validate_unit PASS; binding import/thread-config/input validation PASS --------- Co-authored-by: Yi Wang <yiwang2457@gmail.com>

来源与版本
4b09df89774d74e5608a7978d171cccf4bead9a1变更内容
resources/agents/50-kiroku/:上游源码 + 接入配置(agent.toml、bindings/kiroku_bridge.py、Dockerfile、.dockerignore、requirement.md)resources/registry.toml:登记 kiroku(enabled, adapting, case=1)接入要点(审查循环中确认)
Docker Local Smoke 结果(如实上报)
运行路径