Add comprehensive two-tier architecture where Steward analyzes requests and Tatlock executes with scoped tools. Includes full infrastructure for request preprocessing, tool tracking, benchmarking, and streaming. **Added:** - Steward agent for request analysis and capability recommendation - Household Registry for centralized capability management - Request preprocessing pipeline (Steward → Tatlock flow) - Tool usage tracking and benchmarking system - Streaming transparency (Steward reasoning visible in streams) - Structured logging with operation timing - Redis benchmark storage with 30-day expiry - Benchmark analysis CLI tools **Infrastructure:** - src/agents/steward/ - Steward agent implementation - src/agents/tatlock_core/ - Tatlock capability domain - src/core/preprocessing.py - Request preprocessing pipeline - src/core/tool_tracking.py - Tool call tracking - src/core/benchmarks.py - Benchmark recording system - src/core/household_registry.py - Capability registry - src/core/startup.py - Application startup coordination - src/core/logging_config.py - Structured logging setup **Integration:** - Responses API uses Steward for Tatlock requests - Chat Completions wraps Responses API for OpenAI compatibility - Streaming coordinator supports Steward + Tatlock flow - Tool scoping per request based on Steward recommendations **Testing:** - Integration tests for Steward-Tatlock flow - Benchmark and registry unit tests - Steward streaming tests See PHASE2_PLAN.md and PHASE2_COMPLETE.md for detailed documentation. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
36 lines
956 B
Python
36 lines
956 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
Simple test to verify Steward agent works correctly.
|
|
"""
|
|
import asyncio
|
|
|
|
from src.agents.steward import analyze_request
|
|
from src.core.startup import initialize_application
|
|
|
|
|
|
async def main():
|
|
"""Test a simple request."""
|
|
print("Initializing application...")
|
|
initialize_application()
|
|
|
|
print("\nTesting simple greeting...")
|
|
result = await analyze_request(
|
|
"Hello!",
|
|
conversation_history=[],
|
|
)
|
|
|
|
print(f"\nResult type: {type(result)}")
|
|
print(f"Result: {result}")
|
|
|
|
if hasattr(result, 'recommended_capabilities'):
|
|
print(f"\nRecommended capabilities: {result.recommended_capabilities}")
|
|
print(f"Complexity: {result.estimated_complexity}")
|
|
print(f"Reasoning: {result.reasoning}")
|
|
else:
|
|
print("\nERROR: Result doesn't have expected attributes!")
|
|
print(f"Result attributes: {dir(result)}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|