A multi-modal AI agent platform with tool execution, streaming support, and MCP integration. Provides CLI, gRPC, Slack bot, and automation interfaces for agentic workflows.
Seshat has 25 tools with basic naming and descriptions, but critical gaps undermine quality. Tool names follow verb_noun convention (bash, edit_file, read_file), which is good. However, descriptions are extremely brief (10-50 chars) and lack actionable context for LLM selection. Most critically: NO input schemas are visible in the provided source code. Tool definitions appear as string names in tool_names.go with descriptions, but actual JSON Schema definitions with parameter types are not shown. This is a hard blocker, without schemas, LLMs cannot validate inputs or understand parameter constraints. Error handling is minimal; no recovery guidance or categorization. Security concerns: bash and agent tools are high-risk but lack permission gates or dry-run patterns. Composition is reasonable (tools are single-purpose), but many tools lack pagination support despite handling lists (list_directory, grep, web_search).
Run a sub-agent with a prompt
Fetch and process content from a URL with agentic capabilities
Apply a unified diff patch to files
Ask the user a question with optional options
Execute bash commands with optional background execution
Create a directory
Download a file from a URL
NO input schemas visible in source code. Tool definitions list parameter names and descriptions but lack JSON Schema type definitions, constraints, enums, or validation rules. This violates the core MCP tool contract and prevents LLMs from understanding valid inputs.
Descriptions are too brief (10-50 chars) and lack actionable context. Examples: 'Execute bash commands with optional background execution' (52 chars) does not explain WHEN to use bash vs agent, what risks exist, or how to handle errors. 'Search code using Sourcegraph' (30 chars) omits prerequisites, authentication, or result format.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Edit file content with old/new content replacement
Fetch content from a URL
Get metadata about a file
Find files matching a glob pattern
Search for patterns in files
Kill a background job
Get output from a background job
List directory contents
Apply multiple edits to a file
Create a new notebook
Edit a notebook cell
Write/overwrite a notebook
Read file content with optional offset and limit
Remove a file or directory
Search code using Sourcegraph
Fetch and render web content
Search the web
Write content to a file
High-risk tools (bash, remove_file, agent, job_kill) lack permission gates, dry-run patterns, or confirmation steps. bash can execute arbitrary commands; remove_file with recursive=true can delete entire directories; agent spawns sub-agents. No evidence of authorization checks or audit trails.
List/search tools (list_directory, grep, web_search, glob) lack pagination parameters (limit, offset, cursor) and result count documentation. Returning unbounded results risks context window exhaustion and LLM reasoning degradation.
No error handling guidance. Tools do not document retryable vs fatal errors, recovery steps, or actionable error messages. An LLM receiving 'file not found' has no guidance on whether to retry, ask the user, or abort.