{"repo":"NousResearch/hermes-agent","public_id":"30405","display_label":"Agent tool-call sanitization and delegate task limits","summary":"These issues and PRs address malformed or empty tool_call payloads causing API errors across providers, and problems with delegate_task silently truncating batch tasks beyond concurrency limits without surfacing the truncation to the model.","subsystem":"agent","counts":{"members":8,"open_issues":1,"open_issues_distinct":1,"open_prs":1,"closed_issues":0,"merged_prs":0,"attempt_prs":7},"landed_fix":null,"resolution":{"state":"unresolved","by":null},"freshness":{"state":"never_verified","last_verified_at":null,"is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.25},"fix_edges":[],"members":[{"kind":"issue","number":30405,"title":"[Bug]: Truncated delegate_task is unkown to the model.","url":null,"state":"open"},{"kind":"pr","number":12737,"title":"fix(agent): normalize empty assistant content to None for Anthropic compatibility","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":29168,"title":"fix(agent): merge consecutive assistant tool_calls before orphan-tool drop (#29148)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"cbe397ef458bc715ce82451e722ee0e45a67687e","number":0},{"kind":"pr","value":"#55603","number":55603},{"kind":"pr","value":"#29148","number":29148},{"kind":"pr","value":"#49147","number":49147},{"kind":"pr","value":"#49162","number":49162},{"kind":"pr","value":"#34510","number":34510}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":30472,"title":"fix(agent): surface delegate_task truncation to the model and document the per-turn cap","url":null,"state":"closed","close_reason":{"category":"stale_abandoned","implication":"active"},"merged":false},{"kind":"pr","number":31615,"title":"fix(agent): normalize empty tool-call content for strict chat APIs","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#31615","number":31615},{"kind":"pr","value":"#31582","number":31582},{"kind":"pr","value":"#31175","number":31175}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":64345,"title":"fix(sanitize): drop tool_calls key when dedup removes all calls","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#86654","number":86654},{"kind":"pr","value":"#77944","number":77944},{"kind":"pr","value":"#72591","number":72591}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":64843,"title":"fix(agent): prevent empty tool_calls arrays to fix DeepSeek V4 HTTP 400 errors","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#86654","number":86654},{"kind":"pr","value":"#64345","number":64345},{"kind":"pr","value":"#77944","number":77944},{"kind":"pr","value":"#72591","number":72591}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":128991,"title":"fix(agent): return paired errors for capped delegate calls","url":null,"state":"closed","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}