zeroclaw/tests
Aleksandr Prilipko 9e8f2c15b4 feat(agent): add research phase — proactive information gathering
Adds a new "research phase" that runs before the main agent response,
allowing the agent to proactively gather information using tools.

Features:
- Configurable triggers: Always, Keywords, Length, Question, Never
- Full tool access during research (not just read-only)
- Progress output showing which tools are called
- Prompt-guided fallback for providers without native tool calling (Gemini)

Config example:
```toml
[research]
enabled = true
trigger = "keywords"
keywords = ["find", "search", "check"]
max_iterations = 5
show_progress = true
```

Files changed:
- src/config/schema.rs: ResearchPhaseConfig + ResearchTrigger
- src/agent/research.rs: NEW — research phase logic
- src/agent/agent.rs: Integration in turn() method
- tests/agent_e2e.rs: 4 new tests including prompt-guided provider

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-21 21:06:27 +07:00
..
fixtures fix(tools): file_read binary file support — PDF extraction + lossy fallback 2026-02-21 13:03:13 +08:00
agent_e2e.rs feat(agent): add research phase — proactive information gathering 2026-02-21 21:06:27 +07:00
agent_loop_robustness.rs fix: add usage field to ChatResponse constructors added upstream 2026-02-21 12:29:02 +08:00
channel_routing.rs fix(channels): interrupt in-flight telegram requests on newer sender messages 2026-02-20 01:54:07 +08:00
config_persistence.rs fix(channels): interrupt in-flight telegram requests on newer sender messages 2026-02-20 01:54:07 +08:00
config_schema.rs Fix gateway strict-delta and test regressions after rebase 2026-02-21 17:38:27 +08:00
dockerignore_test.rs chore: Remove blocking read strings 2026-02-19 14:52:29 +08:00
hooks_integration.rs chore(hooks): fix formatting and clippy warnings 2026-02-21 13:34:09 +08:00
memory_comparison.rs feat(memory): add session_id isolation to Memory trait (#530) 2026-02-17 07:44:05 -05:00
memory_restart.rs fix(channels): interrupt in-flight telegram requests on newer sender messages 2026-02-20 01:54:07 +08:00
otel_dependency_feature_regression.rs fix(observability): prevent otel reactor panic in non-tokio contexts 2026-02-20 16:07:50 +08:00
provider_resolution.rs chore(fmt): align formatting after main rebase 2026-02-21 14:54:19 +08:00
provider_schema.rs fix: add usage field to ChatResponse constructors added upstream 2026-02-21 12:29:02 +08:00
reply_target_field_regression.rs fix(channels): enforce reply_target naming consistency 2026-02-18 19:56:31 +08:00
telegram_attachment_fallback.rs fix(telegram): fall back to text link when media-by-URL fails 2026-02-21 12:34:33 +08:00
whatsapp_webhook_security.rs fix(memory): prevent autosave key collisions across runtime flows 2026-02-15 22:55:52 -05:00