Skip to content

Commit 434ed74

Browse files
committed
Release v0.3.0: Major feature update to match latest symbiont platform
- Add secrets management system with HashiCorp Vault, encrypted files, and OS keychain support - Add comprehensive MCP management capabilities for Model Context Protocol servers - Add vector database and RAG operations for knowledge management and search - Add Agent DSL compilation and deployment functionality - Add enhanced system and agent metrics monitoring - Update client API with 25+ new methods for all new features - Update documentation with comprehensive examples and usage patterns - Fix import formatting and security warnings - Bump version to 0.3.0 This release brings the Python SDK fully up to date with symbiont platform v0.1.2 capabilities including the major secrets management system introduced in v0.1.1 and the latest MCP, vector database, and DSL features.
1 parent 15f89b5 commit 434ed74

File tree

4 files changed

+843
-9
lines changed

4 files changed

+843
-9
lines changed

README.md

Lines changed: 205 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

symbiont/__init__.py

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,32 @@
1313
from .models import (
1414
# Core Agent Models
1515
Agent,
16+
AgentDeployRequest,
17+
AgentDeployResponse,
18+
AgentMetrics,
1619
AgentState,
1720
AgentStatusResponse,
1821
AnalysisResults,
22+
ContextQuery,
23+
ContextResponse,
24+
# Agent DSL Models
25+
DslCompileRequest,
26+
DslCompileResponse,
1927
ErrorResponse,
2028
FindingCategory,
2129
FindingSeverity,
2230
# System Models
2331
HealthResponse,
2432
HumanReviewDecision,
33+
KnowledgeItem,
34+
# Vector Database & RAG Models
35+
KnowledgeSourceType,
36+
McpConnectionInfo,
37+
# MCP Management Models
38+
McpConnectionStatus,
39+
McpResourceInfo,
40+
McpServerConfig,
41+
McpToolInfo,
2542
PaginationInfo,
2643
ResourceUsage,
2744
ReviewSession,
@@ -30,14 +47,27 @@
3047
ReviewSessionResponse,
3148
ReviewSessionState,
3249
ReviewStatus,
50+
SecretBackendConfig,
51+
# Secrets Management Models
52+
SecretBackendType,
53+
SecretListResponse,
54+
SecretRequest,
55+
SecretResponse,
3356
SecurityFinding,
3457
SignedTool,
3558
SigningRequest,
3659
SigningResponse,
60+
SystemMetrics,
3761
# Tool Review Models
3862
Tool,
3963
ToolProvider,
4064
ToolSchema,
65+
VaultAuthMethod,
66+
VaultConfig,
67+
VectorMetadata,
68+
VectorSearchRequest,
69+
VectorSearchResponse,
70+
VectorSearchResult,
4171
# Workflow Models
4272
WorkflowExecutionRequest,
4373
WorkflowExecutionResponse,
@@ -46,14 +76,14 @@
4676
# Load environment variables from .env file
4777
load_dotenv()
4878

49-
__version__ = "0.2.0"
79+
__version__ = "0.3.0"
5080

5181
__all__ = [
5282
# Client
5383
'Client',
5484

5585
# Core Agent Models
56-
'Agent', 'AgentState', 'ResourceUsage', 'AgentStatusResponse',
86+
'Agent', 'AgentState', 'ResourceUsage', 'AgentStatusResponse', 'AgentMetrics',
5787

5888
# Workflow Models
5989
'WorkflowExecutionRequest', 'WorkflowExecutionResponse',
@@ -66,7 +96,22 @@
6696
'SigningRequest', 'SigningResponse', 'SignedTool',
6797

6898
# System Models
69-
'HealthResponse', 'ErrorResponse', 'PaginationInfo',
99+
'HealthResponse', 'ErrorResponse', 'PaginationInfo', 'SystemMetrics',
100+
101+
# Secrets Management Models
102+
'SecretBackendType', 'SecretBackendConfig', 'SecretRequest', 'SecretResponse', 'SecretListResponse',
103+
'VaultAuthMethod', 'VaultConfig',
104+
105+
# MCP Management Models
106+
'McpConnectionStatus', 'McpServerConfig', 'McpConnectionInfo', 'McpToolInfo', 'McpResourceInfo',
107+
108+
# Vector Database & RAG Models
109+
'KnowledgeSourceType', 'VectorMetadata', 'KnowledgeItem',
110+
'VectorSearchRequest', 'VectorSearchResult', 'VectorSearchResponse',
111+
'ContextQuery', 'ContextResponse',
112+
113+
# Agent DSL Models
114+
'DslCompileRequest', 'DslCompileResponse', 'AgentDeployRequest', 'AgentDeployResponse',
70115

71116
# Exceptions
72117
'SymbiontError',

0 commit comments

Comments
 (0)