--- name: field-agent-documentation description: Comprehensive template and guidelines for documenting Field Agents including technical specifications, system prompts, tool specifications, user interactions, and standardized documentation structure --- # Field Agent Documentation Standards This skill provides a complete template and best practices for creating professional, comprehensive documentation for Field Agents. Following these standards ensures consistency, clarity, and ease of use across all agent documentation. ## When to Use This Skill Use this skill when you need to: - Create documentation for a new Field Agent - Standardize existing Field Agent documentation - Write system prompts with best practices - Define tool specifications and naming conventions - Structure user prompts and interaction patterns - Document agent architecture and technical details ## Documentation Structure Overview Complete Field Agent documentation should include these sections in order: ```markdown 1. Basic Information (metadata, links, status) 2. Team Structure (owners, contributors) 3. Purpose & Functionality (description, value, users) 4. Usage Scenarios (use cases, examples) 5. Technical Specifications (model, settings, parameters) 6. Dependencies & Integration (requirements, data sources) 7. Agent/Sub-Agent Details (per-agent specifications) 8. System Prompt (detailed agent instructions) 9. Tools (function specifications and schemas) 10. Input/Output Format (data structures, formats) 11. User Prompts (interaction patterns, guided flows) 12. Development Roadmap (milestones, phases) 13. Demo (examples, videos, recordings) ``` --- ## Section 1: Basic Information This section provides essential metadata about the agent. ### Template ```markdown # [Agent Name] ## Basic Information | Item | Details | |------|---------| | **Project Name** | [Clean, self-explanatory, immutable name] | | **Type** | Field Agent | | **Interface Type** | TD Workflow / Chat / Slack / API | | **GitHub Repo Link** | [Repository URL] | | **Status** | Development / Staging / Production | | **Version** | [Semantic version: MAJOR.MINOR.PATCH] | | **Last Updated** | [YYYY-MM-DD] | | **Agent Instance** | [Cloud provider: instance ID] | | **Agent Link** | [Direct link to agent] | | **One-Pager Slide** | [Link to overview presentation] | | **Demo Video** | [Link to demonstration recording] | | **Demo Talk-Track** | [Link to demo script] | ``` ### Best Practices - **Project Name**: Choose a clear, descriptive name that won't change - **Status**: Keep status current (Development → Staging → Production) - **Version**: Use semantic versioning (1.0.0, 1.1.0, 2.0.0) - **Links**: Ensure all links are accessible to target audience --- ## Section 2: Team Structure Document who is responsible for the agent. ### Template ```markdown ## Team Structure | Role | Assignee | |------|----------| | **Product Owner / Main Architect** | [Name, Email] | | **Additional Contributors** | [Names, Roles] | | **Support Contact** | [Team/Channel] | ``` ### Best Practices - Include contact information for support - List all contributors for accountability - Update when team changes occur --- ## Section 3: Purpose & Functionality Explain what the agent does and why it matters. ### Template ```markdown ## Purpose & Functionality ### Description [Brief 2-3 sentence description of what the agent performs and its core functionality] ### Key Capabilities - **Integration 1**: [What it integrates with and how] - **Integration 2**: [What it integrates with and how] - **Core Feature**: [Primary capability description] ### Business Value [Explain the business value this agent delivers. What problems does it solve? What ROI does it provide?] ### Target Users - **Primary**: [Job roles/personas who will use this most] - **Secondary**: [Additional users who may benefit] ### Potential Applications [Detailed description of who will use this agent and in what contexts] ``` ### Example ```markdown ## Purpose & Functionality ### Description Customer Segmentation Agent analyzes customer data to automatically identify behavioral segments using RFM (Recency, Frequency, Monetary) analysis and predictive modeling. ### Key Capabilities - **Database Integration**: Connects to Treasure Data customer databases - **Segmentation Algorithms**: RFM, K-means clustering, behavioral scoring - **Visualization**: Generates interactive Plotly charts and segment distributions ### Business Value Enables marketing teams to identify high-value customer segments 10x faster than manual analysis, improving campaign targeting accuracy by 35% and increasing ROI on marketing spend. ### Target Users - **Primary**: Marketing Managers, CRM Analysts, Customer Success Teams - **Secondary**: Data Analysts, Business Intelligence Teams ### Potential Applications Marketing teams use this agent to create targeted campaigns, CRM teams identify at-risk customers for retention programs, and analysts explore customer lifetime value patterns. ``` --- ## Section 4: Usage Scenarios Provide concrete examples of how the agent is used. ### Template ```markdown ## Usage Scenarios ### Primary Use Case [Describe the most common use case with a step-by-step example] **Example:** 1. User asks: "[Sample user query]" 2. Agent performs: "[What the agent does]" 3. Agent returns: "[What the user receives]" ### Additional Use Cases 1. **Use Case Name**: [Description and benefit] 2. **Use Case Name**: [Description and benefit] 3. **Use Case Name**: [Description and benefit] ### Example Scenarios #### Scenario 1: [Name] **Context**: [When this scenario applies] **User Input**: "[Example user query]" **Agent Output**: [What the agent provides] **Outcome**: [Business result] #### Scenario 2: [Name] [Follow same structure] ``` --- ## Section 5: Technical Specifications Define the technical configuration of the agent. ### Template ```markdown ## Technical Specifications | Item | Details | |------|---------| | **Agent Name** | [Name - use `[Sub]` prefix for sub-agents] | | **Model Name** | Claude 4 Sonnet ⭐ (Recommended) / Claude 3.5 Sonnet / Claude 3 Haiku | | **Max Tool Iterations** | [Number - controls resource consumption] | | **Temperature** | [0-1, where 0 = deterministic, 1 = creative] ⭐ Recommended: 0 | | **Max Tokens** | [Output token limit] | | **Timeout** | [Execution timeout in seconds] | ``` ### Model Selection Guide **Claude 4 Sonnet (Recommended)** ⭐ - Best for: Most production Field Agents - Benefits: Highest performance, more output tokens, better reasoning - Use when: You need reliability and comprehensive outputs **Claude 3.5 Sonnet** - Best for: Alternative to Claude 4, similar capabilities - Benefits: Strong performance, widely tested - Use when: Claude 4 not available or testing compatibility **Claude 3 Haiku** - Best for: Lightweight, fast-response tasks - Benefits: Lower cost, faster execution - Use when: Simple queries, real-time requirements, budget constraints ### Temperature Guide | Temperature | Behavior | Best For | |-------------|----------|----------| | **0** ⭐ | Deterministic, consistent answers | Most Field Agents, production use | | **0.3** | Slight variation, mostly consistent | Agents needing minor creative variation | | **0.7** | Balanced creativity and consistency | Content generation with some flexibility | | **1.0** | Maximum creativity, varied outputs | Creative writing, brainstorming agents | **Recommended**: Use temperature **0** for Field Agents to ensure consistent, reliable outputs. ### Max Tool Iterations Controls how many times the agent can execute tools before stopping. ```markdown - **Low (5-10)**: Simple agents with few tool calls - **Medium (15-20)**: Most Field Agents with moderate complexity - **High (25-30)**: Complex agents requiring multiple data sources and iterations ``` **Best Practice**: Start with 15-20, increase only if agent needs more steps. --- ## Section 6: Dependencies & Integration Document all external requirements and integrations. ### Template ```markdown ## Dependencies & Integration ### Required Data Sources | Data Source | Purpose | Access Requirements | |-------------|---------|---------------------| | [Database/Table] | [What data is used] | [Permissions needed] | ### Integration Points | Integration | Type | Purpose | |-------------|------|---------| | [System/API] | [REST/GraphQL/SDK] | [What it's used for] | ### Prerequisites - [ ] Access to [database/system] - [ ] Permissions: [specific permissions] - [ ] API keys configured: [which APIs] - [ ] Dependencies installed: [libraries/tools] ### Dependencies on Other Systems - [None] OR [List dependent workflows, features, product permissions] ``` ### Example ```markdown ## Dependencies & Integration ### Required Data Sources | Data Source | Purpose | Access Requirements | |-------------|---------|---------------------| | `customer_db.transactions` | Transaction history for RFM analysis | Read access to customer_db | | `customer_db.profiles` | Customer demographic data | Read access to customer_db | ### Integration Points | Integration | Type | Purpose | |-------------|------|---------| | Treasure Data Trino | SQL Query | Data extraction and analysis | | Plotly | Visualization Library | Chart generation | ### Prerequisites - [ ] Access to `customer_db` database - [ ] Permissions: Read access on customer tables - [ ] API keys configured: None required - [ ] Dependencies installed: Plotly for visualizations ### Dependencies on Other Systems - Requires Treasure Data instance with Trino query engine - No dependencies on external workflows ``` --- ## Section 7: Agent/Sub-Agent Details Provide detailed specifications for each agent and sub-agent. ### Template ```markdown ## Agent Details: [Agent Name] | Item | Details | |------|---------| | **Agent Name** | [Name] or **[Sub] [Name]** for sub-agents | | **Model Name** | Claude 4 Sonnet ⭐ | | **Max Tool Iterations** | [Number] | | **Temperature** | 0 ⭐ | | **Purpose** | [What this specific agent does] | | **Invocation** | [How this agent is called] | ### Sub-Agents If this agent uses sub-agents, list them: - **[Sub] Sub-Agent Name**: [Purpose and when it's invoked] ``` ### Best Practices - Use `[Sub]` prefix for sub-agents to distinguish from main agents - Document invocation patterns (how/when sub-agents are called) - Specify different configurations if sub-agents use different models --- ## Section 8: System Prompt The system prompt is the most critical element - it defines agent behavior. ### System Prompt Structure Template ```markdown ## System Prompt: [Agent Name] # [Agent Name] [Brief one-line description of agent role and purpose] # Role The agent's role and responsibilities: - [Responsibility 1] - [Responsibility 2] - [Responsibility 3] # Goal [Detailed description of what the user receives when the agent is executed and what the agent aims to achieve] ## Basic Principles High-level workflow: 1. [Step 1: What happens first] 2. [Step 2: What happens next] 3. [Step 3: Final steps] 4. [Step 4: Output delivery] ## Available Tools ### [Tool Category/Purpose] **Tool**: `tool_name_in_snake_case` **Purpose**: [Brief purpose of this tool] **Input**: [What inputs the tool consumes] **Output**: [What outputs the tool returns] ### [Next Tool Category] **Tool**: `another_tool_name` **Purpose**: [Brief purpose] **Input**: [Input parameters] **Output**: [Return values] ## Task Flow ### Task 1: [Tool Name] [required = true, mandatory_start = true] **Execution**: call_[required = true, mandatory_start = true] **Steps** [sequential=true]: 1. [Detailed step-by-step pseudo-logic] 2. [What the tool should do] 3. [How to handle results] 4. [Error handling] **Output Format**: [Describe or show sample output format] ### Task 2: [Next Tool] [required = false] [Follow same structure] ## Checklist (Optional) If applicable, provide a validation checklist: - [ ] [Validation item 1] - [ ] [Validation item 2] - [ ] [Validation item 3] ``` ### System Prompt Best Practices #### 1. Tool Naming Conventions ⭐ **Use snake_case with descriptive names:** ✅ **Good Examples:** ``` verify_database_access list_columns_customer_db query_sales_data calculate_rfm_scores generate_segment_visualization fetch_customer_transactions ``` ❌ **Bad Examples:** ``` verify # Too vague list # What are we listing? query # Query what? verifydbaccess # Hard to read, no separators listColumns # Should be snake_case ``` **Naming Pattern**: `[action]_[object]_[context]` - **Action**: verify, list, query, calculate, generate, fetch, create, update - **Object**: database, columns, data, scores, visualization - **Context**: customer_db, sales, rfm, etc. #### 2. Reduce Hallucination with Detailed Logic Provide explicit pseudo-logic instead of general instructions: ✅ **Good - Explicit Logic:** ```markdown ### Task 1: Query Customer Data **Steps** [sequential=true]: 1. Call `verify_database_access` with database name 2. If access is denied, return error message: "Database access denied. Please check permissions." 3. If access is granted, call `list_columns_customer_db` to retrieve schema 4. Validate that required columns exist: ['customer_id', 'revenue', 'last_purchase_date'] 5. If columns missing, return error: "Required columns not found: [list missing columns]" 6. If columns exist, call `query_sales_data` with filters: - WHERE last_purchase_date >= DATE_SUB(CURRENT_DATE, INTERVAL 365 DAY) - AND revenue > 0 7. Return result set in JSON format ``` ❌ **Bad - Vague Instructions:** ```markdown ### Task 1: Query Customer Data Query the customer database and get the data we need. ``` #### 3. Specify Sequential vs. Parallel Execution ```markdown **Steps** [sequential=true]: # Tasks must execute in order - each depends on previous **Steps** [parallel=true]: # Tasks can execute simultaneously - no dependencies ``` #### 4. Include Sample Output Formats ```markdown **Output Format**: \```json { "status": "success", "segments": [ { "segment_name": "Champions", "customer_count": 1250, "avg_revenue": 5200.00, "characteristics": { "recency_score": 5, "frequency_score": 5, "monetary_score": 5 } } ], "total_customers_analyzed": 5000, "execution_time_ms": 2341 } \``` ``` --- ## Section 9: Tools Document each tool/function specification. ### Template ```markdown ## Tools ### Tool: `tool_name_in_snake_case` | Item | Details | |------|---------| | **Function Name** | `tool_name_in_snake_case` | | **Function Description** | [Brief description of what this function does] | | **Target** | Knowledge Base / Agent / External API | | **Target Function** | List Columns / Query Data / Search Schema / Custom | #### Input Format \```json { "parameter1": "value1", "parameter2": "value2" } \``` #### Output Format \```json { "result": "data", "status": "success" } \``` #### Example Usage \``` User: "Get customer segments" Tool Call: query_customer_segments({"min_revenue": 1000}) Tool Response: {"segments": [...], "total": 5} \``` ### Tool: `next_tool_name` [Follow same structure for each tool] ``` ### Tool Target Types **Knowledge Base Tools:** - **List Columns**: Retrieve schema information - **Query Data (Trino SQL)**: Execute SQL queries - **Search Schema**: Find tables/columns (avoid if possible - can be slow) **Agent Tools:** - **Sub-Agent Call**: Invoke another agent and return results - **Custom Function**: Execute custom Python/JavaScript code ### Best Practices for Tool Documentation 1. **Match names** between system prompt and tool specification exactly 2. **Use snake_case** consistently 3. **Provide examples** of inputs and outputs 4. **Document errors** and how the tool handles them 5. **Specify data types** for all parameters --- ## Section 10: Input/Output Format Define how users interact with the agent and what they receive. ### Template ```markdown ## Input/Output Format ### Input Format **Language Request**: [Natural language or structured format] **Sample Dialogue**: \``` User: "[Example user query]" Agent: "[Agent's clarifying question if needed]" User: "[User's response]" \``` **Optional Parameters**: - `parameter_name`: [Description, constraints, default value] - `another_parameter`: [Description, constraints, default value] ### Output Format **Output Type**: HTML / Plotly Graph / Markdown / JSON / Summarized Text **Sample Output**: [Show representative example of what the user receives] ### Sample Conversation Flow \``` User: "Analyze my customer segments for Q4 2024" Agent: "I'll analyze your customer segments. I can use RFM analysis, behavioral clustering, or both. Which would you prefer?" User: "Both" Agent: [Executes analysis] Agent Output: # Customer Segmentation Analysis - Q4 2024 ## RFM Segments [Table showing segments] ## Behavioral Clusters [Visualization showing clusters] ## Key Insights - [Insight 1] - [Insight 2] \``` ``` ### Output Format Options | Format | Best For | Example | |--------|----------|---------| | **HTML** | Structured presentation with formatting | Reports, dashboards, formatted tables | | **Plotly Graph** | Data visualizations | Charts, graphs, interactive visualizations | | **Markdown** | Text-heavy content with structure | Analysis summaries, documentation | | **JSON** | Programmatic consumption | API responses, data pipelines | | **Summarized Text** | Quick insights | Executive summaries, key findings | --- ## Section 11: User Prompts User prompts guide the conversation and capture necessary information. ### Template ```markdown ## User Prompt: [Prompt Name] | Item | Details | |------|---------| | **User Prompt Name** | [Descriptive name indicating purpose] | | **Purpose** | [What this prompt accomplishes] | ### User Prompt Text \``` Step 1: [First question or instruction] - Option A: [Description] - Option B: [Description] - Option C: [Description] Step 2: [Next question based on previous answer] [Continue step-by-step flow] Step 3: [Final configuration] [Gather remaining details] \``` ### Advanced Settings **Pre-Configuration Checklist**: - [ ] [Configuration item 1] - [ ] [Configuration item 2] - [ ] [Configuration item 3] **System Prompt Override** (if applicable): [Explain if/when system prompt can be customized by users] ### Sample Conversation \``` Agent: "Welcome! I can help you with customer segmentation. What would you like to do? 1. Analyze existing segments 2. Create new segments 3. Compare segment performance" User: "Analyze existing segments" Agent: "Great! Which time period should I analyze? - Last 30 days - Last quarter - Last year - Custom date range" User: "Last quarter" Agent: "Analyzing your customer segments for Q3 2024..." [Proceeds with analysis] \``` ``` ### User Prompt Best Practices 1. **Step-by-step flow**: Guide users through complex tasks incrementally 2. **Clear options**: Provide specific choices rather than open-ended questions 3. **Context**: Explain what each option does and why they'd choose it 4. **Validation**: Include checks to ensure user input is valid 5. **Defaults**: Suggest sensible defaults for common use cases --- ## Section 12: Development Roadmap Track the agent's development milestones and future plans. ### Template ```markdown ## Development Roadmap ### Milestones | Phase | Date | Deliverables | Status | |-------|------|--------------|--------| | **Planning** | [Date] | Requirements, architecture design, team formation | ✅ Complete | | **Development** | [Date] | Core functionality, tools, system prompt | ✅ Complete | | **Testing** | [Date] | Unit tests, integration tests, user testing | ✅ Complete | | **Deployment** | [Date] | Production deployment, documentation, training | 🔄 In Progress | | **Enhancement** | [Date] | Feature additions, optimizations, feedback integration | 📅 Planned | ### Future Enhancements - [ ] [Planned feature 1] - [ ] [Planned feature 2] - [ ] [Planned feature 3] ``` --- ## Section 13: Demo Provide examples and demonstrations of the agent in action. ### Template ```markdown ## Demo ### Input Example \``` User Query: "[Realistic example user input]" Context: - [Relevant context or prerequisites] \``` ### Output Example \``` [Show exactly what the agent returns] [Include visualizations, formatted output, or screenshots] \``` ### Video Recording **Demo Video**: [Link to recording] **Duration**: [Length] **Covers**: [What the demo shows] ### Live Demo Access **Demo Environment**: [Link if available] **Test Credentials**: [If applicable] **Sample Data**: [Link to sample data for testing] ``` --- ## Complete Documentation Example Here's a concise example applying all the templates: ```markdown # Customer RFM Segmentation Agent ## Basic Information | Item | Details | |------|---------| | **Project Name** | Customer RFM Segmentation Agent | | **Type** | Field Agent | | **Interface Type** | Chat | | **Status** | Production | | **Version** | 1.2.0 | | **Model** | Claude 4 Sonnet | | **Temperature** | 0 | ## Purpose & Functionality ### Description Automatically segments customers using RFM (Recency, Frequency, Monetary) analysis to identify high-value segments and at-risk customers. ### Business Value Enables 10x faster customer segmentation, improving campaign targeting by 35% and increasing marketing ROI. ## System Prompt: RFM Agent # Customer RFM Segmentation Agent Analyzes customer transaction data to create actionable segments. # Role - Query customer transaction databases - Calculate RFM scores for each customer - Assign customers to segments based on scores - Generate visualizations and insights # Goal Provide marketers with clear customer segments and actionable insights for targeted campaigns. ## Available Tools ### Database Access **Tool**: `verify_database_access` **Purpose**: Verify user has access to customer database **Input**: Database name **Output**: Access status (granted/denied) ### Data Retrieval **Tool**: `query_customer_transactions` **Purpose**: Retrieve customer transaction history **Input**: Database, table, date range **Output**: Transaction records with customer_id, date, amount ### RFM Calculation **Tool**: `calculate_rfm_scores` **Purpose**: Calculate Recency, Frequency, Monetary scores **Input**: Transaction data **Output**: RFM scores per customer ### Visualization **Tool**: `generate_segment_chart` **Purpose**: Create Plotly visualization of segments **Input**: Segment data **Output**: Plotly JSON chart specification ## Task Flow ### Task 1: Verify Access [required = true, mandatory_start = true] **Steps** [sequential=true]: 1. Call `verify_database_access` with customer database name 2. If access denied, return error and stop 3. If access granted, proceed to Task 2 ### Task 2: Retrieve Transaction Data [required = true] **Steps** [sequential=true]: 1. Call `query_customer_transactions` with date range (default: last 365 days) 2. Validate minimum 100 records returned 3. If insufficient data, warn user and ask to expand date range 4. Proceed to Task 3 ### Task 3: Calculate RFM [required = true] **Steps** [sequential=true]: 1. Call `calculate_rfm_scores` with transaction data 2. Assign scores 1-5 for Recency (days since last purchase) 3. Assign scores 1-5 for Frequency (number of purchases) 4. Assign scores 1-5 for Monetary (total revenue) 5. Create segments based on score combinations: - Champions: RFM 5-5-5 - Loyal: RFM 4-5-4 or 5-4-5 - At Risk: RFM 2-3-3 or 3-2-3 - Lost: RFM 1-1-1 6. Proceed to Task 4 ### Task 4: Generate Output [required = true] **Steps** [parallel=true]: 1. Call `generate_segment_chart` to create visualization 2. Format summary statistics 3. Compile key insights **Output Format**: \```json { "segments": [ {"name": "Champions", "count": 1250, "avg_revenue": 5200}, {"name": "Loyal", "count": 2100, "avg_revenue": 3100} ], "chart": { "plotly_json": "..." }, "insights": ["45% of revenue from Champions (25% of customers)"] } \``` ``` --- ## Best Practices Summary ### Documentation Do's ✅ - Use clear, descriptive tool names in snake_case - Provide detailed pseudo-logic in system prompts - Include sample inputs and outputs for every tool - Keep documentation updated with code changes - Use semantic versioning - Include visual examples and demos - Document error handling explicitly ### Documentation Don'ts ❌ - Don't use vague tool names (verify, list, query) - Don't write generic system prompts without details - Don't skip example conversations - Don't forget to update version numbers - Don't leave links broken or outdated - Don't omit dependencies or prerequisites - Don't publish without demo/video --- ## Quick Reference: Tool Naming | Purpose | Good Name | Bad Name | |---------|-----------|----------| | Verify database access | `verify_database_access` | `verify` | | List columns from customer DB | `list_columns_customer_db` | `listColumns` | | Query sales data | `query_sales_data` | `query` | | Calculate RFM scores | `calculate_rfm_scores` | `calcRFM` | | Generate visualization | `generate_segment_chart` | `makeChart` | --- By following this comprehensive documentation template, your Field Agent documentation will be clear, consistent, and professional, making it easy for users to understand, deploy, and use your agents effectively.