Documentation
¶
Index ¶
- Constants
- Variables
- func PreviewToolCall(tc *ToolCall)
- func RegisterBuiltinTools(r *Registry)
- type ConfirmAction
- type ConfirmDecision
- type ConfirmResult
- type FileChange
- type FileModifyingTool
- type ImageData
- type PatternMatchResult
- type Registry
- type SimpleTool
- type Tool
- type ToolCacheInterface
- type ToolCall
- type ToolDefinition
- type ToolSafety
Constants ¶
const ( ConfirmYes = common.ConfirmYes ConfirmNo = common.ConfirmNo ConfirmComment = common.ConfirmComment SafetyHigh = common.SafetyHigh SafetyMedium = common.SafetyMedium SafetyLow = common.SafetyLow )
定数エイリアス
Variables ¶
var Confirm = common.Confirm
var ConfirmApproved = common.ConfirmApproved
var ConfirmInteractive = common.ConfirmInteractive
var ConfirmWithFeedback = common.ConfirmWithFeedback
var DefaultRegistry = NewRegistry()
DefaultRegistry はデフォルトのツールレジストリ
var DisplayContentToInsert = common.DisplayContentToInsert
var DisplayContextAround = common.DisplayContextAround
var DisplayMultipleMatches = common.DisplayMultipleMatches
var DisplayPatternNotFound = common.DisplayPatternNotFound
var FindPatternInLines = common.FindPatternInLines
関数エイリアス - Pattern
var FormatSize = common.FormatSize
var GetSafetyDescription = common.GetSafetyDescription
var GetToolSafety = common.GetToolSafety
関数エイリアス - Safety
var IsAutoApprovable = common.IsAutoApprovable
var IsInteractiveModeEnabled = common.IsInteractiveModeEnabled
var IsMediumToolAutoApprovable = common.IsMediumToolAutoApprovable
var IsSafeToolAutoApprovable = common.IsSafeToolAutoApprovable
var LoadImage = common.LoadImage
関数エイリアス - Image
var SetAutoApprove = common.SetAutoApprove
関数エイリアス - Confirm
var ValidatePath = common.ValidatePath
関数エイリアス - Validation
var ValidatePathAllowParent = common.ValidatePathAllowParent
Functions ¶
func PreviewToolCall ¶ added in v0.31.0
func PreviewToolCall(tc *ToolCall)
PreviewToolCall displays tool information without executing it
func RegisterBuiltinTools ¶
func RegisterBuiltinTools(r *Registry)
RegisterBuiltinTools はすべての組み込みツールを登録 NOTE: All tools are now registered by subpackages:
- tools/file: read_file, write_file, str_replace, delete_file, list_dir, restore_backup, list_backups
- tools/git: git_commit, git_checkout
- tools/search: search_code, search_file, web_search, ast_grep, grep_replace
- tools/dev: bash, run_test, format, lint, http_request
Types ¶
type ConfirmAction ¶ added in v0.31.0
type ConfirmAction = common.ConfirmAction
type ConfirmDecision ¶ added in v0.31.0
type ConfirmDecision = common.ConfirmDecision
type ConfirmResult ¶ added in v0.29.0
type ConfirmResult = common.ConfirmResult
type FileChange ¶
type FileChange struct {
FilePath string
BackupPath string
Timestamp time.Time
Tool string
Description string
LinesAdded int // 追加行数
LinesRemoved int // 削除行数
}
FileChange はファイル変更履歴
type FileModifyingTool ¶ added in v0.31.0
type FileModifyingTool struct {
// contains filtered or unexported fields
}
FileModifyingTool はファイルを変更しFileChangeを返すツール
func (*FileModifyingTool) Name ¶ added in v0.31.0
func (t *FileModifyingTool) Name() string
func (*FileModifyingTool) Run ¶ added in v0.31.0
func (t *FileModifyingTool) Run(args map[string]string) (string, *FileChange, error)
type PatternMatchResult ¶ added in v0.31.0
type PatternMatchResult = common.PatternMatchResult
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry はツールの登録・管理を行う
func (*Registry) Execute ¶
func (r *Registry) Execute(tc *ToolCall) (string, *FileChange)
Execute はツール呼び出しを実行(スレッドセーフ + 監査ログ記録)
func (*Registry) GetToolDefinitions ¶ added in v0.44.0
func (r *Registry) GetToolDefinitions() []ToolDefinition
GetToolDefinitions は登録済み全ツールの定義を返す
type SimpleTool ¶ added in v0.31.0
type SimpleTool struct {
// contains filtered or unexported fields
}
SimpleTool は引数を受け取り結果のみ返すシンプルなツール
func (*SimpleTool) Name ¶ added in v0.31.0
func (t *SimpleTool) Name() string
func (*SimpleTool) Run ¶ added in v0.31.0
func (t *SimpleTool) Run(args map[string]string) (string, *FileChange, error)
type Tool ¶
type Tool interface {
// Name はツール名を返す
Name() string
// Description はツールの説明を返す
Description() string
// Parameters はツールのパラメータ定義を返す(OpenAI形式)
Parameters() map[string]interface{}
// Run はツールを実行
// output: ツールの実行結果
// change: ファイル変更情報(変更がない場合はnil)
// err: エラー(エラーがない場合はnil)
Run(args map[string]string) (output string, change *FileChange, err error)
}
Tool はツールの共通インターフェース
type ToolCacheInterface ¶ added in v0.42.0
type ToolCacheInterface interface {
// GetFile はファイル内容のキャッシュを取得
// キャッシュヒット時は (content, true) を返す
// ファイルが変更されていた場合やキャッシュミス時は ("", false) を返す
GetFile(path string) (string, bool)
// SetFile はファイル内容をキャッシュに保存
// 1MB以上のファイルはキャッシュしない
SetFile(path, content string)
// GetDir はディレクトリ一覧のキャッシュを取得
// キャッシュヒット時は (result, true) を返す
// ディレクトリが変更されていた場合やキャッシュミス時は ("", false) を返す
GetDir(path string) (string, bool)
// SetDir はディレクトリ一覧をキャッシュに保存
SetDir(path, result string)
// InvalidateFile は指定ファイルのキャッシュを無効化
// ファイル書き込み系ツール実行後に呼ばれる
InvalidateFile(path string)
// InvalidateDir は指定ディレクトリのキャッシュを無効化
// ファイル作成/削除後に呼ばれる
InvalidateDir(path string)
// Clear は全キャッシュをクリア
Clear()
// GetSearch は検索結果のキャッシュを取得
// キャッシュヒット時は (result, true) を返す
// キャッシュミス時は ("", false) を返す
GetSearch(pattern, path string) (string, bool)
// SetSearch は検索結果をキャッシュに保存
SetSearch(pattern, path, result string)
// ClearSearchCache は検索キャッシュをクリア
// ファイル変更系ツール実行時に呼ばれる
ClearSearchCache()
}
ToolCacheInterface はツール結果のキャッシュインターフェース agent パッケージで実装され、tools パッケージから使用される
var GlobalToolCache ToolCacheInterface
GlobalToolCache はグローバルなツールキャッシュ agent.NewAgent() で設定される
type ToolCall ¶
type ToolCall struct {
ID string `json:"id,omitempty"` // Function Calling 用の tool_call_id
Tool string `json:"tool"`
RawArgs map[string]any `json:"args"`
Args map[string]string
}
ToolCall はAIからのツール呼び出し
func ParseToolCall ¶
ParseToolCall はレスポンスからツール呼び出しを抽出(最初の1つのみ - 後方互換)
func ParseToolCalls ¶ added in v0.31.0
ParseToolCalls はレスポンスから全てのツール呼び出しを抽出 Markdownコードブロック内のJSONは除外する
func (*ToolCall) NormalizeArgs ¶ added in v0.31.0
func (tc *ToolCall) NormalizeArgs()
NormalizeArgs はRawArgsをArgsに変換(数値→文字列)
type ToolDefinition ¶ added in v0.44.0
ToolDefinition はツール定義(プロバイダー変換用)
type ToolSafety ¶ added in v0.29.0
type ToolSafety = common.ToolSafety