@@ -475,11 +475,214 @@ pytest
475475- pydantic
476476- python-dotenv
477477
478- ## What's New in v0.2.0
478+ ## What's New in v0.3.0
479+
480+ ### Major New Features
481+
482+ - ** Secrets Management System** : Complete secrets management with HashiCorp Vault, encrypted files, and OS keychain integration
483+ - ** MCP Management** : Enhanced Model Context Protocol server management and tool integration
484+ - ** Vector Database & RAG** : Knowledge management with vector similarity search and retrieval-augmented generation
485+ - ** Agent DSL Operations** : DSL compilation and agent deployment capabilities
486+ - ** Enhanced Monitoring** : Comprehensive system and agent metrics
487+ - ** Security Enhancements** : Advanced signing and verification workflows
488+
489+ ### Secrets Management
490+
491+ ``` python
492+ from symbiont import (
493+ Client, SecretBackendConfig, SecretBackendType,
494+ VaultConfig, VaultAuthMethod, SecretRequest
495+ )
496+
497+ client = Client()
498+
499+ # Configure HashiCorp Vault backend
500+ vault_config = VaultConfig(
501+ url = " https://vault.example.com" ,
502+ auth_method = VaultAuthMethod.TOKEN ,
503+ token = " hvs.abc123..."
504+ )
505+
506+ backend_config = SecretBackendConfig(
507+ backend_type = SecretBackendType.VAULT ,
508+ vault_config = vault_config
509+ )
510+
511+ client.configure_secret_backend(backend_config)
512+
513+ # Store and retrieve secrets
514+ secret_request = SecretRequest(
515+ agent_id = " agent-123" ,
516+ secret_name = " api_key" ,
517+ secret_value = " secret_value_here" ,
518+ description = " API key for external service"
519+ )
520+
521+ response = client.store_secret(secret_request)
522+ print (f " Secret stored: { response.secret_name} " )
523+
524+ # Retrieve secret
525+ secret_value = client.get_secret(" agent-123" , " api_key" )
526+ print (f " Retrieved secret: { secret_value} " )
527+
528+ # List all secrets for an agent
529+ secrets_list = client.list_secrets(" agent-123" )
530+ print (f " Agent secrets: { secrets_list.secrets} " )
531+ ```
532+
533+ ### MCP Management
534+
535+ ``` python
536+ from symbiont import McpServerConfig
537+
538+ # Add MCP server
539+ mcp_config = McpServerConfig(
540+ name = " filesystem-server" ,
541+ command = [" npx" , " @modelcontextprotocol/server-filesystem" , " /tmp" ],
542+ env = {" NODE_ENV" : " production" },
543+ timeout_seconds = 30
544+ )
545+
546+ client.add_mcp_server(mcp_config)
547+
548+ # Connect to server
549+ client.connect_mcp_server(" filesystem-server" )
550+
551+ # List available tools and resources
552+ tools = client.list_mcp_tools(" filesystem-server" )
553+ resources = client.list_mcp_resources(" filesystem-server" )
554+
555+ print (f " Available tools: { [tool.name for tool in tools]} " )
556+ print (f " Available resources: { [resource.uri for resource in resources]} " )
557+
558+ # Get connection status
559+ connection_info = client.get_mcp_server(" filesystem-server" )
560+ print (f " Status: { connection_info.status} " )
561+ print (f " Tools count: { connection_info.tools_count} " )
562+ ```
563+
564+ ### Vector Database & RAG
565+
566+ ``` python
567+ from symbiont import (
568+ KnowledgeItem, VectorMetadata, KnowledgeSourceType,
569+ VectorSearchRequest, ContextQuery
570+ )
571+
572+ # Add knowledge items
573+ metadata = VectorMetadata(
574+ source = " documentation.md" ,
575+ source_type = KnowledgeSourceType.DOCUMENT ,
576+ timestamp = datetime.now(),
577+ agent_id = " agent-123"
578+ )
579+
580+ knowledge_item = KnowledgeItem(
581+ id = " doc-001" ,
582+ content = " This is important documentation about the system..." ,
583+ metadata = metadata
584+ )
585+
586+ client.add_knowledge_item(knowledge_item)
587+
588+ # Search knowledge base
589+ search_request = VectorSearchRequest(
590+ query = " How do I configure the system?" ,
591+ agent_id = " agent-123" ,
592+ source_types = [KnowledgeSourceType.DOCUMENT ],
593+ limit = 5 ,
594+ similarity_threshold = 0.7
595+ )
596+
597+ search_results = client.search_knowledge(search_request)
598+ for result in search_results.results:
599+ print (f " Score: { result.similarity_score} " )
600+ print (f " Content: { result.item.content[:100 ]} ... " )
601+
602+ # Get context for RAG operations
603+ context_query = ContextQuery(
604+ query = " How do I set up authentication?" ,
605+ agent_id = " agent-123" ,
606+ max_context_items = 3
607+ )
608+
609+ context = client.get_context(context_query)
610+ print (f " Retrieved { len (context.context_items)} context items " )
611+ print (f " Sources: { context.sources} " )
612+ ```
613+
614+ ### Agent DSL Operations
615+
616+ ``` python
617+ from symbiont import DslCompileRequest, AgentDeployRequest
618+
619+ # Compile DSL code
620+ dsl_code = """
621+ agent webhook_handler {
622+ name: "Webhook Handler"
623+ description: "Handles incoming webhooks"
624+
625+ trigger github_webhook {
626+ on_push: main
627+ }
628+
629+ action process_webhook {
630+ validate_signature()
631+ parse_payload()
632+ trigger_workflow()
633+ }
634+ }
635+ """
636+
637+ compile_request = DslCompileRequest(
638+ dsl_content = dsl_code,
639+ agent_name = " webhook_handler" ,
640+ validate_only = False
641+ )
642+
643+ compile_result = client.compile_dsl(compile_request)
644+ if compile_result.success:
645+ print (f " Compiled successfully: { compile_result.agent_id} " )
646+
647+ # Deploy the agent
648+ deploy_request = AgentDeployRequest(
649+ agent_id = compile_result.agent_id,
650+ environment = " production" ,
651+ config_overrides = {" max_concurrent_tasks" : 10 }
652+ )
653+
654+ deployment = client.deploy_agent(deploy_request)
655+ print (f " Deployed: { deployment.deployment_id} " )
656+ print (f " Endpoint: { deployment.endpoint_url} " )
657+ else :
658+ print (f " Compilation errors: { compile_result.errors} " )
659+ ```
660+
661+ ### Enhanced Monitoring
662+
663+ ``` python
664+ # Get comprehensive system metrics
665+ system_metrics = client.get_metrics()
666+ print (f " Memory usage: { system_metrics.memory_usage_percent} % " )
667+ print (f " CPU usage: { system_metrics.cpu_usage_percent} % " )
668+ print (f " Active agents: { system_metrics.active_agents} " )
669+ print (f " Vector DB items: { system_metrics.vector_db_items} " )
670+ print (f " MCP connections: { system_metrics.mcp_connections} " )
671+
672+ # Get agent-specific metrics
673+ agent_metrics = client.get_agent_metrics(" agent-123" )
674+ print (f " Tasks completed: { agent_metrics.tasks_completed} " )
675+ print (f " Average response time: { agent_metrics.average_response_time_ms} ms " )
676+ print (f " Agent uptime: { agent_metrics.uptime_seconds} s " )
677+ ```
678+
679+ ## Previous Release Notes
680+
681+ ### v0.2.0
479682
480683- ** Tool Review API** : Complete implementation of tool review workflows
481684- ** Runtime API** : Agent management, workflow execution, and system metrics
482- - ** Enhanced Models** : Comprehensive type definitions for all API responses
685+ - ** Enhanced Models** : Comprehensive type definitions for all API responses
483686- ** Better Error Handling** : Specific exceptions for different error conditions
484687- ** Improved Documentation** : Complete API reference with examples
485688
0 commit comments