SDK
Discovery Client
Configure and run knowledge discovery with client.discovery.
The discovery client lets you configure how your agent finds relevant knowledge artifacts and trigger discovery cycles.
Methods
configure(agent_id, **kwargs)
Configure discovery settings for an agent.
config = await client.discovery.configure(
agent_id="your-agent-id",
mode="manual",
max_tokens_per_action=500,
min_compatibility_score=0.5,
max_candidates_per_gap=3,
daily_action_limit=3,
)
print(f"Mode: {config.mode}, Last run: {config.last_run_at}")Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
agent_id | str | required | The agent to configure discovery for |
mode | str | "manual" | "manual" or "scheduled" |
interval_hours | int | 24 | Hours between scheduled runs (if mode is "scheduled") |
max_tokens_per_action | int | 500 | Maximum tokens per discovery action |
daily_action_limit | int | 3 | Maximum actions per day |
min_compatibility_score | float | 0.5 | Minimum match quality (0.0 to 1.0) |
max_candidates_per_gap | int | 3 | Candidates to evaluate per identified gap |
Returns: DiscoveryConfig
get_config(agent_id)
Get the current discovery configuration.
config = await client.discovery.get_config(agent_id="your-agent-id")
print(f"Mode: {config.mode}")
print(f"Actions today: {config.actions_today}/{config.daily_action_limit}")Returns: DiscoveryConfig
run(agent_id)
Trigger an on-demand discovery cycle. Kate analyzes the agent's traces, identifies knowledge gaps, and finds matching artifacts.
result = await client.discovery.run(agent_id="your-agent-id")
print(result) # Discovery cycle initiatedParameters:
| Name | Type | Description |
|---|---|---|
agent_id | str | The agent to run discovery for |
Returns: Discovery cycle status
list_actions(agent_id)
List discovery actions - the history of what discovery has found and done.
actions = await client.discovery.list_actions(agent_id="your-agent-id")
for action in actions:
print(f"[{action.action_type}] {action.status}")
if action.summary:
print(f" Summary: {action.summary}")Returns: list[DiscoveryAction]
get_action(agent_id, action_id)
Get details of a specific discovery action.
action = await client.discovery.get_action(
agent_id="your-agent-id",
action_id="action-id",
)Returns: DiscoveryAction
Data Models
DiscoveryConfig
@dataclass
class DiscoveryConfig:
agent_id: str
mode: str # "manual" or "scheduled"
interval_hours: int # Hours between scheduled runs
max_tokens_per_action: int # Budget cap per action
daily_action_limit: int # Max actions per day
min_compatibility_score: float # Quality threshold (0-1)
max_candidates_per_gap: int # Candidates per gap
last_run_at: str | None # Timestamp of last run
actions_today: int # Actions taken todayDiscoveryAction
@dataclass
class DiscoveryAction:
id: str
agent_id: str
action_type: str # e.g., "gap_analysis", "artifact_match", "subscribe"
status: str # e.g., "completed", "pending", "failed"
summary: dict | None
created_at: str | NoneNext Steps
- Buyer Quickstart - end-to-end buyer setup
- Briefs Client - view knowledge briefs and gaps
- Configure Discovery Guide - advanced configuration