feat(agent): structured task format and workflow improvements#6
Draft
feat(agent): structured task format and workflow improvements#6
Conversation
f19c2a9 to
6f71f5f
Compare
Removed specific tool files from Dockerfile and added a directory copy instead.
- Change default model from gpt-5 to gpt-5.4 across docs, tests, and examples - Remove Strix Router references from docs, quickstart, overview, and README - Delete models.mdx (Strix Router page) and its nav entry - Simplify install script to suggest openai/ prefix directly - Keep strix/ model routing support intact in code Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rewrite system prompt: refusal avoidance, system-verified scope, thorough validation mandate, root agent orchestration role, recon-first guidance - Add authorized targets injection via system_prompt_context in strix_agent - Add set_system_prompt_context to LLM for dynamic prompt updates - Prefer python tool over terminal for Python code in tool schemas - Increase LLM retry backoff cap to 90s - Replace models.strix.ai footer with strix.ai Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…odes
Models occasionally output text-only narration ("Planning the
assessment...") without a tool call, which halts the interactive agent
loop since the system interprets no-tool-call as "waiting for user
input." Rewrite both interactive and autonomous prompt sections to make
the tool-call requirement absolute with explicit warnings about the
system halt consequence.
- Replace free-form task description with structured XML format (<scan_task><targets><mode>) in StrixAgent for clearer LLM parsing - Replace verbose <inter_agent_message> with compact <agent_message> format to reduce token overhead in inter-agent communication - Add corrective message when agents respond with plain text instead of tool calls, enforcing tool-call-only behavior - Simplify thinking_blocks type annotation in AgentState - Add <agent_message> pattern to clean_content() for hidden XML cleanup
- Add html.escape() to target values in <scan_task> (URLs, paths, IPs) - Escape sender_name/sender_id in <agent_message> attributes - CDATA-wrap message content in <agent_message> to handle any text - Make corrective message generic (no StrixAgent-specific tool names)
6f71f5f to
4e47c0c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replace free-form task descriptions with structured XML format and reduce token overhead in inter-agent communication.
Changes
<scan_task><targets><mode>) in StrixAgent for clearer LLM parsing<inter_agent_message>with compact<agent_message>format to reduce token overhead<agent_message>pattern toclean_content()for hidden XML cleanupFiles Changed
strix/agents/StrixAgent/strix_agent.py(+32/-10)strix/agents/base_agent.py(+17/-24)strix/agents/state.py(+1/-3)strix/llm/utils.py(+1)Split from usestrix#328.